update MEF to preview 9
authorJb Evain <jbevain@gmail.com>
Fri, 4 Jun 2010 14:04:42 +0000 (14:04 -0000)
committerJb Evain <jbevain@gmail.com>
Fri, 4 Jun 2010 14:04:42 +0000 (14:04 -0000)
svn path=/trunk/mcs/; revision=158472

105 files changed:
mcs/class/System.ComponentModel.Composition/README.txt
mcs/class/System.ComponentModel.Composition/System.ComponentModel.Composition.dll.sources
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/ComponentModelUnitTest.csproj
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/ComposablePartExceptionTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/CompositionContainerExtensibilityTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/CompositionContainerTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/CompositionErrorTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/CompositionExceptionTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/ConstraintServicesTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/ContractBasedImportDefinitionTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/Diagnostics/CompositionTraceSourceTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/Expectations.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/Factories/CatalogFactory.FilteredComposablePartCatalog.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/Factories/CatalogFactory.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/Hosting/AggregateCatalogTest.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/Hosting/CatalogExportProviderTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/MetadataTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/MetadataViewProviderTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/Primitives/ComposablePartCatalogDebuggerProxyTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/ComponentModel/Composition/ReflectionModel/ReflectionModelServicesTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/Integration/AdaptingCollectionTests.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/Integration/CatalogFilteringTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/Integration/ExportProviderEventTests.cs
mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/Integration/RecompositionTests.cs
mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/AssemblyInfo.cs
mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/System/ComponentModel/Composition/Hosting/CompositionHostTestService.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/System/ComponentModel/Composition/ReflectionModel/ReflectionModelServicesEx.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/System/UnitTesting/ExceptionAssert.cs
mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/UnitTestFramework.csproj
mcs/class/System.ComponentModel.Composition/src/ComponentModel/AssemblyInfo.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/ComponentModel.csproj
mcs/class/System.ComponentModel.Composition/src/ComponentModel/ComponentModelSL.csproj [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/Assumes.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/ReflectionInvoke.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/ReflectionServices.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/SilverlightReflectionInvoke.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/ComponentModel/SilverlightAdditions.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/SuppressMessages.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/ComponentModel/SuppressMessagesBaselined.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedModelDiscovery.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedPartCreationInfo.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ChangeRejectedException.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/CompositionError.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/CompositionException.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ExportAttribute.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ExportServices.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/AssemblyCatalog.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/AtomicComposition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.CatalogChangeProxy.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.CatalogExport.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.PartCreatorExport.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/ComposablePartExportProvider.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionConstants.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionContainer.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionServices.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/DirectoryCatalog.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Hosting/TypeCatalog.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ImportAttribute.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ImportManyAttribute.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ImportingConstructorAttribute.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/InheritedExportAttribute.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/MetadataViewGenerator.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/MetadataViewProvider.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePartCatalog.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Primitives/CompositionElement.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Primitives/ContractBasedImportDefinition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Primitives/ExportedDelegate.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Primitives/IPartCreatorImportDefinition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/Primitives/ImportDefinition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ExportingMember.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportType.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportingMember.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/LazyMemberInfo.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorExportDefinition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorMemberImportDefinition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorParameterImportDefinition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionComposablePart.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionComposablePartDefinition.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionField.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMethod.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionModelServices.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionProperty.cs
mcs/class/System.ComponentModel.Composition/src/ComponentModel/System/Tuple.cs
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/AssemblyInfo.cs
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Composition.Initialization.csproj
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Composition.InitializationSL.csproj [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.Reader.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.Writer.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Requires.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Strings.Designer.cs
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Strings.resx
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/SuppressMessages.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/CompositionInitializer.AssemblyList.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/CompositionInitializer.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportFactoryOfT.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportFactoryOfTTMetadata.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportLifetimeContextOfT.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/Hosting/CompositionHost.cs
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/Hosting/DeploymentCatalog.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/Hosting/Package.cs [new file with mode: 0644]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/PartInitializer.AssemblyList.cs [deleted file]
mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/PartInitializer.cs [deleted file]

index 4627ad9dd7b239f07ab521d314e879cc93fb76c1..1cb22747906c527fa0d0a065e007a347d557893a 100644 (file)
@@ -1,10 +1,10 @@
-This directory contains an import of Microsoft's Mananged Extensibility Framework Beta 2
+This directory contains an import of Microsoft's Mananged Extensibility Preview 9
 as downloaded from:
 
        http://mef.codeplex.com/
 
 The version integrated on this release is:
 
-       http://mef.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34838
+       http://mef.codeplex.com/releases/view/40606
 
 Only the source code and test suite has been integrated
index 16e6ddcfcca229d3e9ffb712fb8549222d7e9649..b70c9d6712863a7a29f6c088534dac55af96030f 100644 (file)
+../../build/common/Consts.cs
+src/ComponentModel/SuppressMessages.cs
 src/ComponentModel/SilverlightAdditions.cs
-src/ComponentModel/Microsoft/Internal/Lock.Reader.cs
+src/ComponentModel/SuppressMessagesBaselined.cs
+src/ComponentModel/AssemblyInfo.cs
+src/ComponentModel/Microsoft/Internal/Runtime/Serialization/SerializationServices.cs
 src/ComponentModel/Microsoft/Internal/GenerationServices.cs
-src/ComponentModel/Microsoft/Internal/LazyServices.cs
-src/ComponentModel/Microsoft/Internal/ReflectionServices.cs
+src/ComponentModel/Microsoft/Internal/Lock.cs
 src/ComponentModel/Microsoft/Internal/Requires.cs
-src/ComponentModel/Microsoft/Internal/Lock.Writer.cs
-src/ComponentModel/Microsoft/Internal/Assumes.cs
-src/ComponentModel/Microsoft/Internal/Runtime/Serialization/SerializationServices.cs
-src/ComponentModel/Microsoft/Internal/ContractServices.cs
+src/ComponentModel/Microsoft/Internal/SilverlightReflectionInvoke.cs
 src/ComponentModel/Microsoft/Internal/Assumes.InternalErrorException.cs
-src/ComponentModel/Microsoft/Internal/StringComparers.cs
-src/ComponentModel/Microsoft/Internal/Collections/CollectionServices.CollectionOfObject.cs
-src/ComponentModel/Microsoft/Internal/Collections/ReadOnlyDictionaryDebuggerProxy.cs
+src/ComponentModel/Microsoft/Internal/ContractServices.cs
+src/ComponentModel/Microsoft/Internal/LazyServices.cs
+src/ComponentModel/Microsoft/Internal/Assumes.cs
+src/ComponentModel/Microsoft/Internal/ReflectionServices.cs
 src/ComponentModel/Microsoft/Internal/Collections/CollectionServices.cs
-src/ComponentModel/Microsoft/Internal/Collections/ReadOnlyDictionary.cs
+src/ComponentModel/Microsoft/Internal/Collections/ConditionalWeakTable.cs
 src/ComponentModel/Microsoft/Internal/Collections/EnumerableCardinality.cs
 src/ComponentModel/Microsoft/Internal/Collections/WeakReferenceCollection.cs
-src/ComponentModel/Microsoft/Internal/Lock.cs
+src/ComponentModel/Microsoft/Internal/Collections/ReadOnlyDictionaryDebuggerProxy.cs
+src/ComponentModel/Microsoft/Internal/Collections/ReadOnlyDictionary.cs
+src/ComponentModel/Microsoft/Internal/Collections/CollectionServices.CollectionOfObject.cs
+src/ComponentModel/Microsoft/Internal/StringComparers.cs
+src/ComponentModel/Microsoft/Internal/ReflectionInvoke.cs
+src/ComponentModel/Microsoft/Internal/Lock.Reader.cs
+src/ComponentModel/Microsoft/Internal/Lock.Writer.cs
 src/ComponentModel/Microsoft/Internal/AttributeServices.cs
+src/ComponentModel/System/Lazy.cs
 src/ComponentModel/System/LazyOfTTMetadata.cs
-src/ComponentModel/System/ComponentModel/Composition/ChangeRejectedException.cs
-src/ComponentModel/System/ComponentModel/Composition/CompositionException.cs
-src/ComponentModel/System/ComponentModel/Composition/CreationPolicy.cs
+src/ComponentModel/System/ComponentModel/Composition/MetadataViewGenerator.cs
+src/ComponentModel/System/ComponentModel/Composition/ErrorBuilder.cs
+src/ComponentModel/System/ComponentModel/Composition/ExportServices.DisposableLazy.cs
+src/ComponentModel/System/ComponentModel/Composition/MetadataViewProvider.cs
+src/ComponentModel/System/ComponentModel/Composition/PartCreatorOfTTMetadata.cs
+src/ComponentModel/System/ComponentModel/Composition/PartLifetimeContextOfT.cs
+src/ComponentModel/System/ComponentModel/Composition/ImportManyAttribute.cs
+src/ComponentModel/System/ComponentModel/Composition/IAttributedImport.cs
 src/ComponentModel/System/ComponentModel/Composition/IPartImportsSatisfiedNotification.cs
 src/ComponentModel/System/ComponentModel/Composition/MetadataAttributeAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/ImportAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/ImportManyAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/PartMetadataAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/CompositionResult.cs
-src/ComponentModel/System/ComponentModel/Composition/ICompositionService.cs
+src/ComponentModel/System/ComponentModel/Composition/ContractNameServices.cs
+src/ComponentModel/System/ComponentModel/Composition/CompositionResultOfT.cs
 src/ComponentModel/System/ComponentModel/Composition/PartNotDiscoverableAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/ErrorBuilder.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionContainer.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/AggregateExportProvider.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/DirectoryCatalog.DirectoryCatalogDebuggerProxy.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionServices.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ExportProvider.GetExportOverrides.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionBatch.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.PartCreatorExport.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionConstants.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/AtomicComposition.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.RecompositionManager.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/AssemblyCatalog.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.CatalogExport.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ComposablePartCatalogCollection.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/DirectoryCatalog.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.PartManager.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/AssemblyCatalogDebuggerProxy.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/AtomicCompositionExtensions.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ExportsChangeEventArgs.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionBatch.SingleExportComposablePart.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/INotifyComposablePartCatalogChanged.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ExportProvider.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/TypeCatalog.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionLock.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/AggregateCatalog.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.CatalogChangeProxy.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ComposablePartExportProvider.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ComposablePartCatalogChangeEventArgs.cs
-src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.EngineContext.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/IPartCreatorImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ExportMetadataAttribute.cs
+src/ComponentModel/System/ComponentModel/Composition/CompositionErrorDebuggerProxy.cs
+src/ComponentModel/System/ComponentModel/Composition/ConstraintServices.cs
+src/ComponentModel/System/ComponentModel/Composition/ExportAttribute.cs
+src/ComponentModel/System/ComponentModel/Composition/CreationPolicy.cs
+src/ComponentModel/System/ComponentModel/Composition/ImportingConstructorAttribute.cs
+src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedPartCreationInfo.cs
+src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedModelDiscovery.cs
+src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedExportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/PartMetadataAttribute.cs
+src/ComponentModel/System/ComponentModel/Composition/CompositionErrorId.cs
+src/ComponentModel/System/ComponentModel/Composition/MetadataServices.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionField.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorMemberImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionComposablePart.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionExtensions.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMember.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorExportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportingParameter.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMethod.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorParameterImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionModelServices.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportingMember.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionWritableMember.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionParameter.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMemberImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionItemType.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportingItem.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ExportingMember.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionParameterImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/LazyMemberInfo.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMemberExportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportType.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionType.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionComposablePartDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionItem.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/IReflectionPartCreationInfo.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/DisposableReflectionComposablePart.cs
+src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionProperty.cs
+src/ComponentModel/System/ComponentModel/Composition/InheritedExportAttribute.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/ImportCardinality.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/ExportedDelegate.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePartException.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/CompositionElementExtensions.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePart.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/ExportedDelegate.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/ImportCardinality.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePartCatalogDebuggerProxy.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/CompositionElementDebuggerProxy.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/ImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePartCatalog.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/ICompositionElement.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePartDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/SerializableCompositionElement.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/ContractBasedImportDefinition.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/ExportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/CompositionElementDebuggerProxy.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/SerializableCompositionElement.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePartCatalogDebuggerProxy.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/ComposablePartCatalog.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/Export.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/ImportDefinition.cs
 src/ComponentModel/System/ComponentModel/Composition/Primitives/CompositionElement.cs
-src/ComponentModel/System/ComponentModel/Composition/Primitives/CompositionElementExtensions.cs
-src/ComponentModel/System/ComponentModel/Composition/ExceptionBuilder.cs
-src/ComponentModel/System/ComponentModel/Composition/CompositionContractMismatchException.cs
-src/ComponentModel/System/ComponentModel/Composition/Diagnostics/CompositionTrace.cs
-src/ComponentModel/System/ComponentModel/Composition/Diagnostics/CompositionTraceId.cs
+src/ComponentModel/System/ComponentModel/Composition/Primitives/IPartCreatorImportDefinition.cs
+src/ComponentModel/System/ComponentModel/Composition/ICompositionError.cs
+src/ComponentModel/System/ComponentModel/Composition/Diagnostics/TraceWriter.cs
 src/ComponentModel/System/ComponentModel/Composition/Diagnostics/CompositionTraceSource.cs
+src/ComponentModel/System/ComponentModel/Composition/Diagnostics/CompositionTrace.cs
 src/ComponentModel/System/ComponentModel/Composition/Diagnostics/TraceSourceTraceWriter.cs
+src/ComponentModel/System/ComponentModel/Composition/Diagnostics/CompositionTraceId.cs
 src/ComponentModel/System/ComponentModel/Composition/Diagnostics/SilverlightTraceWriter.cs
-src/ComponentModel/System/ComponentModel/Composition/Diagnostics/TraceWriter.cs
-src/ComponentModel/System/ComponentModel/Composition/ImportingConstructorAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/CompositionErrorDebuggerProxy.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorExportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportingMember.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMember.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportingItem.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionItem.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionWritableMember.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionItemType.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorParameterImportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportType.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionField.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/DisposableReflectionComposablePart.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionComposablePart.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionProperty.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionImportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionParameterImportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/PartCreatorMemberImportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ExportingMember.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/LazyMemberInfo.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionModelServices.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/IReflectionPartCreationInfo.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionType.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionParameter.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionExtensions.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMemberExportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMethod.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionMemberImportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ReflectionComposablePartDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/ReflectionModel/ImportingParameter.cs
+src/ComponentModel/System/ComponentModel/Composition/ExceptionBuilder.cs
+src/ComponentModel/System/ComponentModel/Composition/CompositionResult.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/DirectoryCatalog.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ComposablePartCatalogCollection.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/AssemblyCatalog.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/TypeCatalog.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.CatalogChangeProxy.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/AtomicComposition.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.CatalogExport.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionBatch.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/INotifyComposablePartCatalogChanged.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionConstants.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ExportProvider.GetExportOverrides.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/AggregateCatalog.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.EngineContext.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/AtomicCompositionExtensions.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ExportsChangeEventArgs.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ComposablePartCatalogChangeEventArgs.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionContainer.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.RecompositionManager.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ComposablePartExportProvider.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/DirectoryCatalog.DirectoryCatalogDebuggerProxy.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionLock.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/AssemblyCatalogDebuggerProxy.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ExportProvider.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.PartCreatorExport.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CatalogExportProvider.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/AggregateExportProvider.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/ImportEngine.PartManager.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionBatch.SingleExportComposablePart.cs
+src/ComponentModel/System/ComponentModel/Composition/Hosting/CompositionServices.cs
+src/ComponentModel/System/ComponentModel/Composition/ChangeRejectedException.cs
+src/ComponentModel/System/ComponentModel/Composition/CompositionContractMismatchException.cs
 src/ComponentModel/System/ComponentModel/Composition/CompositionError.cs
+src/ComponentModel/System/ComponentModel/Composition/ICompositionService.cs
 src/ComponentModel/System/ComponentModel/Composition/ExportServices.cs
-src/ComponentModel/System/ComponentModel/Composition/MetadataViewGenerator.cs
-src/ComponentModel/System/ComponentModel/Composition/ContractNameServices.cs
-src/ComponentModel/System/ComponentModel/Composition/ImportCardinalityMismatchException.cs
-src/ComponentModel/System/ComponentModel/Composition/ExportServices.DisposableLazy.cs
-src/ComponentModel/System/ComponentModel/Composition/MetadataViewProvider.cs
 src/ComponentModel/System/ComponentModel/Composition/AttributedModelServices.cs
-src/ComponentModel/System/ComponentModel/Composition/ICompositionError.cs
-src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedPartCreationInfo.cs
-src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedModelDiscovery.cs
-src/ComponentModel/System/ComponentModel/Composition/AttributedModel/AttributedExportDefinition.cs
-src/ComponentModel/System/ComponentModel/Composition/MetadataServices.cs
-src/ComponentModel/System/ComponentModel/Composition/ExportCardinalityCheckResult.cs
-src/ComponentModel/System/ComponentModel/Composition/ConstraintServices.cs
-src/ComponentModel/System/ComponentModel/Composition/PartLifetimeContextOfT.cs
-src/ComponentModel/System/ComponentModel/Composition/InheritedExportAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/CompositionResultOfT.cs
 src/ComponentModel/System/ComponentModel/Composition/PartCreatorOfT.cs
-src/ComponentModel/System/ComponentModel/Composition/ExportAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/PartCreatorOfTTMetadata.cs
-src/ComponentModel/System/ComponentModel/Composition/IAttributedImport.cs
-src/ComponentModel/System/ComponentModel/Composition/CompositionErrorId.cs
 src/ComponentModel/System/ComponentModel/Composition/PartCreationPolicyAttribute.cs
-src/ComponentModel/System/ComponentModel/Composition/ExportMetadataAttribute.cs
-src/ComponentModel/System/Lazy.cs
+src/ComponentModel/System/ComponentModel/Composition/ExportCardinalityCheckResult.cs
+src/ComponentModel/System/ComponentModel/Composition/ImportAttribute.cs
+src/ComponentModel/System/ComponentModel/Composition/ImportCardinalityMismatchException.cs
+src/ComponentModel/System/ComponentModel/Composition/CompositionException.cs
 src/ComponentModel/System/Tuple.cs
-src/ComponentModel/AssemblyInfo.cs
-src/ComponentModel/Strings.Designer.cs
+src/ComponentModel/Strings.Designer.cs
\ No newline at end of file
diff --git a/mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/AssemblyInfo.cs b/mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..80dfc55
--- /dev/null
@@ -0,0 +1,7 @@
+//------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+//------------------------------------------------------------\r
+[assembly: System.CLSCompliant(true)]\r
+[assembly: System.Reflection.AssemblyTitle("System.ComponentModel.Composition.UnitTests")]\r
+[assembly: System.Reflection.AssemblyCopyright("(c) Microsoft Corporation. All rights reserved.")]\r
+[assembly: System.Reflection.AssemblyVersion("2010.02.11")]\r
index b4b5c415dba5a005cdd14518d63633f2246cec7a..2a60f5d54582d9de9183471a626efd4bd53e39e7 100644 (file)
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">\r
+    <CodeAnalysisRuleSet>Migrated rules for ComponentModelUnitTest.ruleset</CodeAnalysisRuleSet>\r
+    <CodeAnalysisRules />\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <OutputPath>..\..\bin</OutputPath>\r
+    <DefineConstants>$(DefineConstants);TRACE</DefineConstants>\r
+    <NoWarn>1570;1572;1573;1591;1699</NoWarn>\r
+  </PropertyGroup>\r
   <PropertyGroup>\r
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
     <ProductVersion>9.0.30729</ProductVersion>\r
     <SchemaVersion>2.0</SchemaVersion>\r
-    <ProjectGuid>{3A74DA75-E26D-44DA-B6EF-2E7CDAECAB4B}</ProjectGuid>\r
+    <ProjectGuid>{82EFB8F9-4130-4275-A26A-9F4C748C1FFB}</ProjectGuid>\r
+    <ProjectClrTypes>FULLCLR;SILVERLIGHT</ProjectClrTypes>\r
     <OutputType>Library</OutputType>\r
     <AppDesignerFolder>Properties</AppDesignerFolder>\r
-    <RootNamespace>System.ComponentModel.Composition.UnitTests</RootNamespace>\r
+    <RootNamespace>\r
+    </RootNamespace>\r
     <AssemblyName>System.ComponentModel.Composition.UnitTests</AssemblyName>\r
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
     <FileAlignment>512</FileAlignment>\r
     <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <DebugType>full</DebugType>\r
-    <Optimize>false</Optimize>\r
-    <OutputPath>..\..\bin\</OutputPath>\r
-    <DefineConstants>TRACE;DEBUG</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
     <NoWarn>;1699;1570;1572;1573;1591;0414</NoWarn>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+    <OldToolsVersion>dogfood</OldToolsVersion>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
-    <DebugType>pdbonly</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>bin\Release\</OutputPath>\r
-    <DefineConstants>TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
+  <PropertyGroup>\r
+    <SignAssembly>true</SignAssembly>\r
+    <NoStdLib>true</NoStdLib>\r
   </PropertyGroup>\r
   <ItemGroup>\r
-    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />\r
-    <Reference Include="System" />\r
-    <Reference Include="System.Core">\r
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
-    </Reference>\r
-    <Reference Include="WindowsBase">\r
-      <RequiredTargetFramework>3.0</RequiredTargetFramework>\r
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\..\..\..\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</HintPath>\r
     </Reference>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
+    <Reference Include="mscorlib" />\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core" />\r
+    <Reference Include="WindowsBase" />\r
     <ProjectReference Include="..\..\src\ComponentModel\ComponentModel.csproj">\r
-      <Project>{A36AEF66-2411-4225-B68E-F2D29368A31B}</Project>\r
+      <Project>{1BBA5101-D4F0-48B8-A5D6-7B23A099DCE3}</Project>\r
       <Name>ComponentModel</Name>\r
     </ProjectReference>\r
     <ProjectReference Include="..\UnitTestFramework\UnitTestFramework.csproj">\r
-      <Project>{786E5A34-975C-4F98-884C-A1DC3ED9E38D}</Project>\r
+      <Project>{35FBE8A0-D87E-4991-B3FC-2A77807DEC85}</Project>\r
       <Name>UnitTestFramework</Name>\r
     </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <Compile Include="Microsoft\Internal\AssumesTests.cs" />\r
+    <Compile Include="AssemblyInfo.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\ConditionalWeakTableTests.cs" />\r
-    <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionaryDebuggerProxyTests.cs" />\r
-    <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionaryTests.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\WeakReferenceCollectionTests.cs" />\r
     <Compile Include="StringsTests.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionaryDebuggerProxyTests.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionaryTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedModelDiscoveryTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionServiceExtensionsTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\AdvancedValueComposition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\AggregateExportProviderTest.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\AttributedModelServicesTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\AttributedModel\AllowNonPublicCompositionTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedModelCompositionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedModelDiscoveryTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\AttributedModel\INotifyImportTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CardinalityMismatchExceptionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ComponentModelTestTypes.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ComponentServicesTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ComposablePartCatalogExtensions.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ComposablePartDefinitionTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ComposablePartExceptionTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ComposablePartExtensibilityTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ComposablePartTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionContainerCollectionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionContainerCycleTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionContainerExtensibilityTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ComposablePartDefinitionTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\CompositionContainerExtensions.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionContainerImportTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionContainerTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionErrorDebuggerProxyTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceIdTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceSourceTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Extensibility\CustomImportManyAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Extensibility\CustomImportAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.NonFilteringTypeCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.MutableComposablePartCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngineTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\CompositionErrorIdTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionErrorTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionExceptionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionResultOfTTest.cs" />\r
     <Compile Include="System\ComponentModel\Composition\CompositionResultTest.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionServiceExtensionsTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\CompositionServiceProxy.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionServicesTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ConcreteComposablePart.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ConstraintServicesTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ContractBasedImportDefinitionTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ContractMismatchExceptionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceIdTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceSourceTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\DynamicMetadata.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CardinalityMismatchExceptionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionErrorTests.cs" />\r
+    <Compile Include="Microsoft\Internal\AssumesTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionExceptionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionResultOfTTest.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AggregateExportProviderTest.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Expectations.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportableAttributeTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportAttributeTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportCollectionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportDefinitionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportMetadataAttributeTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ExportProviderTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Extensibility\CustomImportAttribute.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Extensibility\CustomImportManyAttribute.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.DerivedComposablePartCatalog.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.DisposableComposablePartCatalog.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.FilteredComposablePartCatalog.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.MutableComposablePartCatalog.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.NonFilteringTypeCatalog.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.NoOverridesComposablePartCatalog.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ConstraintFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ContainerFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ContainerFactory.DisposableCompositionContainer.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ContainerFactory.NoOverridesCompositionContainer.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.DerivedComposablePartCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ReflectionFactory.MockParameterInfo.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ReflectionFactory.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Factories\ElementFactory.CompositionElement.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Factories\ElementFactory.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Factories\ErrorFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ExportDefinitionFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ExportDefinitionFactory.DerivedExportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ExportFactory.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Factories\ExportProviderFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ExportProviderFactory.NoOverridesExportProvider.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Factories\ExportProviderFactory.RecomposableExportProvider.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ImportDefinitionFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ImportDefinitionFactory.DerivedContractBasedImportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ImportDefinitionFactory.DerivedImportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\PartDefinitionFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\PartDefinitionFactory.DerivedComposablePartDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\PartDefinitionFactory.NoOverridesComposablePartDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\PartFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\PartFactory.DisposableComposablePart.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\PartFactory.NoOverridesComposablePart.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ReflectionFactory.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Factories\ReflectionFactory.MockParameterInfo.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\GenerationServicesTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ExportProviderFactory.NoOverridesExportProvider.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\AggregateCatalogTest.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\AssemblyCatalogDebuggerProxyTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\AssemblyCatalogTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProviderTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CompositionBatchTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CompositionTransactionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalogDebuggerProxyTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalogTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngineTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalogDebuggerProxyTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\TypeCatalogTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ImportAttributeTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ImportDefinitionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ImportingComposablePart.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ImportingConstructorAttributeTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\InitializationScopeTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\MetadataAttributeAttributeTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\MetadataTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AttributedModelServicesTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\MetadataViewProviderTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\MicroExport.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionContainerCycleTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ContractBasedImportDefinitionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ConstraintFactory.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.DisposableComposablePartCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\CatalogFactory.NoOverridesComposablePartCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ContainerFactory.DisposableCompositionContainer.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ContainerFactory.NoOverridesCompositionContainer.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\PartDefinitionFactory.DerivedComposablePartDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\PartDefinitionFactory.NoOverridesComposablePartDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\PartFactory.NoOverridesComposablePart.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ExportDefinitionFactory.DerivedExportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ImportDefinitionFactory.DerivedImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ImportDefinitionFactory.DerivedContractBasedImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\PartFactory.DisposableComposablePart.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\PartDefinitionFactory.cs" />\r
     <Compile Include="System\ComponentModel\Composition\PartCreationPolicyAttributeTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\PartMetadataAttributeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionErrorDebuggerProxyTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartCatalogDebuggerProxyTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartCatalogTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\CompositionElementDebuggerProxyTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMemberImportDefinitionTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionModelServicesTests.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionParameterImportDefinitionTests.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\SampleComponents.cs" />\r
     <Compile Include="System\ComponentModel\Composition\UnitTesting\ConstraintAssert.cs" />\r
-    <Compile Include="System\Integration\CatalogFilteringTests.cs" />\r
-    <Compile Include="System\Integration\CompositionContainerAttributedModelCycleTests.cs" />\r
-    <Compile Include="System\Integration\ConstructorInjectionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportDefinitionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ExportDefinitionFactory.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ImportDefinitionFactory.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportDefinitionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportingConstructorAttributeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ContainerFactory.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\ExportFactory.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Factories\PartFactory.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\GenerationServicesTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportingComposablePart.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MicroExport.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportCollectionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataAttributeAttributeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportMetadataAttributeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionContainerCollectionTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionContainerExtensibilityTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionContainerImportTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionContainerTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionServicesTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportAttributeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportAttributeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ComposablePartTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ComponentModelTestTypes.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ComponentServicesTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportableAttributeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\InitializationScopeTests.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataTests.cs" />\r
+    <Compile Include="System\Integration\AdaptingCollectionTests.cs" />\r
     <Compile Include="System\Integration\DelayLoadingTests.cs" />\r
+    <Compile Include="System\Integration\ExportProviderEventTests.cs" />\r
     <Compile Include="System\Integration\DelegateCompositionTests.cs" />\r
     <Compile Include="System\Integration\DiscoveryTests.cs" />\r
-    <Compile Include="System\Integration\ExportProviderEventTests.cs" />\r
-    <Compile Include="System\Integration\LifetimeTests.cs" />\r
-    <Compile Include="System\Integration\PartCreatorTests.cs" />\r
-    <Compile Include="System\Integration\RecompositionTests.cs" />\r
     <Compile Include="System\Integration\RejectionTests.cs" />\r
     <Compile Include="System\Integration\RequiredCreationPolicyTests.cs" />\r
+    <Compile Include="System\Integration\LifetimeTests.cs" />\r
     <Compile Include="System\LazyOfTTMetadataTests.cs" />\r
     <Compile Include="System\UnitTesting\ReflectionItemAssert.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\SampleComponents.cs" />\r
+    <Compile Include="System\Integration\CatalogFilteringTests.cs" />\r
+    <Compile Include="System\Integration\CompositionContainerAttributedModelCycleTests.cs" />\r
+    <Compile Include="System\Integration\ConstructorInjectionTests.cs" />\r
+    <Compile Include="System\Integration\RecompositionTests.cs" />\r
     <Compile Include="System\UnitTesting\TestUtilities.cs" />\r
   </ItemGroup>\r
+  <ItemGroup Condition="'$(IsSilverLight)' != 'true'">\r
+    <Compile Include="System\ComponentModel\Composition\DynamicMetadata.cs" />\r
+  </ItemGroup>\r
   <ItemGroup>\r
-    <Folder Include="Properties\" />\r
+    <BootstrapperPackage Include=".NETFramework,Version=v4.0">\r
+      <Visible>False</Visible>\r
+      <ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+      <ProductName>Windows Installer 3.1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
   </ItemGroup>\r
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
-       Other similar extension points exist, see Microsoft.Common.targets.\r
-  <Target Name="BeforeBuild">\r
-  </Target>\r
-  <Target Name="AfterBuild">\r
-  </Target>\r
-  -->\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />\r
 </Project>
\ No newline at end of file
index 6dd32a49ca16e56dfea4bb406d481a3524e9b6dc..f56a866f973bfcc8ece49fb7f9d6ff4f180979ce 100644 (file)
@@ -655,18 +655,6 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
-        [TestMethod]\r
-        public void GetObjectData_NullAsInfoArgument_ShouldThrowArgumentNull()\r
-        {\r
-            var exception = (ISerializable)CreateComposablePartException();\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsArgument<ArgumentNullException>("info", () =>\r
-            {\r
-                exception.GetObjectData((SerializationInfo)null, context);\r
-            });\r
-        }\r
-\r
 #endif\r
 \r
         private static ComposablePartException CreateComposablePartException()\r
index ae652418c17ba535477dab27060f1d967b4548f3..f088200809bd514d43dbc2187b877b2b59493a78 100644 (file)
@@ -47,6 +47,26 @@ namespace System.ComponentModel.Composition
             Assert.AreSame(container, container.GetExportedValue<CompositionContainer>());\r
         }\r
 \r
+        [TestMethod]\r
+        public void CanBeCollectedAfterDispose()\r
+        {\r
+            AggregateExportProvider exportProvider = new AggregateExportProvider();\r
+            var catalog = new AggregateCatalog(CatalogFactory.CreateDefaultAttributed());\r
+            var container = new CompositionContainer(catalog, exportProvider);\r
+\r
+            WeakReference weakContainer = new WeakReference(container);\r
+            container.Dispose();\r
+            container = null;\r
+\r
+            GC.Collect();\r
+            GC.WaitForPendingFinalizers();\r
+\r
+            Assert.IsFalse(weakContainer.IsAlive);\r
+\r
+            GC.KeepAlive(exportProvider);\r
+            GC.KeepAlive(catalog);\r
+        }\r
+\r
         private CustomCompositionContainer CreateCustomCompositionContainer()\r
         {\r
             return new CustomCompositionContainer();\r
index 49c1add7d83dec8606acf8ba31992b79666102b5..ac10766e048c8bcb6758df873a5500f0192cf6f6 100644 (file)
@@ -2943,6 +2943,8 @@ namespace System.ComponentModel.Composition
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void ComposeExportedValueOfT_ValidContractName_ExportedValue_ExportContainsEmptyMetadata()\r
         {\r
             string expectedContractName = "ContractName";\r
@@ -2968,6 +2970,25 @@ namespace System.ComponentModel.Composition
             Assert.AreEqual(1, exports.Count());  // we only get one if the import was not discovered since the import is not satisfied\r
         }\r
 \r
+        [TestMethod]\r
+        public void TestExportedValueCachesNullValue()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            var exporter = new ExportsMutableProperty();\r
+            exporter.Property = null;\r
+            container.ComposeParts(exporter);\r
+            Assert.IsNull(container.GetExportedValue<string>("Property"));\r
+            exporter.Property = "Value1";\r
+            // Exported value should have been cached and so it shouldn't change\r
+            Assert.IsNull(container.GetExportedValue<string>("Property"));\r
+        }\r
+        public class ExportsMutableProperty\r
+        {\r
+            [Export("Property")]\r
+            public string Property { get; set; }\r
+        }\r
+\r
+\r
         public class PartWithRequiredImport\r
         {\r
             [Import]\r
index dfc9c8994f4f2737c5c98ff09d7fbbc3c37f6b0a..46443646017903775ca4e660337970a66b68fb43 100644 (file)
@@ -408,113 +408,6 @@ namespace System.ComponentModel.Composition
 \r
 #if !SILVERLIGHT\r
 \r
-        [TestMethod]\r
-        public void Constructor6_NullAsInfoArgument_ShouldThrowArgumentNull()\r
-        {\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsArgument<ArgumentNullException>("info", () =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>((SerializationInfo)null, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithMissingMessageEntryAsInfoArgument_ShouldThrowSerialization()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoRemovingMember<CompositionError>("Description", () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsSerialization("Description", () =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithMissingExceptionEntryAsInfoArgument_ShouldThrowSerialization()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoRemovingMember<CompositionError>("Exception", () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsSerialization("Exception", () =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithMissingIdEntryAsInfoArgument_ShouldThrowSerialization()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoRemovingMember<CompositionError>("Id", () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsSerialization("Id", () =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithMissingElementEntryAsInfoArgument_ShouldThrowSerialization()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoRemovingMember<CompositionError>("Element", () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsSerialization("Element", () =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithWrongTypeForExceptionEntryAsInfoArgument_ShouldThrowInvalidCast()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoReplacingMember<CompositionError>("Exception", 10, () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.Throws<InvalidCastException>(() =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithWrongTypeForMessageEntryAsInfoArgument_ShouldThrowInvalidCast()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoReplacingMember<CompositionError>("Description", 10, () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.Throws<InvalidCastException>(() =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithWrongTypeForIdEntryAsInfoArgument_ShouldThrowInvalidCast()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoReplacingMember<CompositionError>("Id", "InvalidValue", () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.Throws<InvalidCastException>(() =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithWrongTypeForElementEntryAsInfoArgument_ShouldThrowInvalidCast()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoReplacingMember<CompositionError>("Element", 10, () => CreateCompositionError());\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.Throws<InvalidCastException>(() =>\r
-            {\r
-                SerializationTestServices.Create<CompositionError>(info, context);\r
-            });\r
-        }\r
-\r
         [TestMethod]\r
         public void ICompositionErrorId_CanBeSerialized()\r
         {\r
@@ -530,21 +423,6 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
-        [TestMethod]\r
-        public void Element_CanBeSerialized()\r
-        {\r
-            var expectations = Expectations.GetCompositionElementsWithNull();\r
-\r
-            foreach (var e in expectations)\r
-            {\r
-                var exception = CreateCompositionError(e);\r
-\r
-                var result = SerializationTestServices.RoundTrip(exception);\r
-\r
-                ElementAssert.AreEqual(exception.Element, result.Element);\r
-            }\r
-        }\r
-\r
         [TestMethod]\r
         public void Exception_CanBeSerialized()\r
         {\r
@@ -575,17 +453,6 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
-        [TestMethod]\r
-        public void GetObjectData_NullAsInfoArgument_ShouldThrowArgumentNull()\r
-        {\r
-            var exception = (ISerializable)CreateCompositionError();\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsArgument<ArgumentNullException>("info", () =>\r
-            {\r
-                exception.GetObjectData((SerializationInfo)null, context);\r
-            });\r
-        }\r
 #endif\r
 \r
         private static CompositionError CreateCompositionError()\r
index a911703cf66c7926139887840f260dc4c7c72977..af9d9b05b04936c628dbfcb02047a994ab246856 100644 (file)
@@ -8,6 +8,9 @@ using System.ComponentModel.Composition.Factories;
 using System.Globalization;\r
 using System.IO;\r
 using System.Linq;\r
+using System.Reflection;\r
+using System.Security;\r
+using System.Security.Permissions;\r
 using System.Text;\r
 using System.ComponentModel.Composition.Primitives;\r
 using System.UnitTesting;\r
@@ -16,13 +19,46 @@ using Microsoft.VisualStudio.TestTools.UnitTesting;
 \r
 #if !SILVERLIGHT\r
 using System.Runtime.Serialization;\r
+using System.Security.Policy;\r
 #endif\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
-    [TestClass]\r
+    [TestClass][Serializable]\r
     public class CompositionExceptionTests\r
     {\r
+#if !SILVERLIGHT\r
+        public delegate void Work(int index);\r
+\r
+        public class Worker : MarshalByRefObject\r
+        {\r
+            public static ExpectationCollection<IEnumerable<CompositionError>, string> expectations = new ExpectationCollection<IEnumerable<CompositionError>, string>();\r
+            static Worker()\r
+            {\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error"), "1<Separator> Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error|Error"), "1<Separator> Error|2<Separator> Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error|Error|Error"), "1<Separator> Error|2<Separator> Error|3<Separator> Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Error)"), "1<Separator> Error|<Prefix>Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Error|Error)"), "1<Separator> Error|<Prefix>Error|2<Separator> Error|<Prefix>Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Error|Error|Error)"), "1<Separator> Error|<Prefix>Error|2<Separator> Error|<Prefix>Error|3<Separator> Error|<Prefix>Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Error(Exception))"), "1<Separator> Exception|<Prefix>Error|<Prefix>Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Error|Exception)"), "1<Separator> Error|<Prefix>Error|2<Separator> Exception|<Prefix>Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Exception)"), "1<Separator> Exception|<Prefix>Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Exception(Exception))"), "1<Separator> Exception|<Prefix>Exception|<Prefix>Error");\r
+                expectations.Add(ErrorFactory.CreateFromDsl("Error(Error(Exception)|Error)"), "1<Separator> Exception|<Prefix>Error|<Prefix>Error|2<Separator> Error|<Prefix>Error");\r
+            }\r
+\r
+            public Work Action;\r
+\r
+            internal void DoWork(int index)\r
+            {\r
+                Action(index);\r
+            }\r
+\r
+        }\r
+\r
+#endif\r
+\r
         [TestMethod]\r
         public void Constructor1_ShouldSetMessagePropertyToDefault()\r
         {\r
@@ -323,9 +359,74 @@ namespace System.ComponentModel.Composition
 \r
                 string result = exception.ToString();\r
                 string expected = FixMessage(e.Output);\r
-                StringAssert.Contains(result, expected);}\r
+                StringAssert.Contains(result, expected);\r
+            }\r
         }\r
 \r
+#if !SILVERLIGHT && CLR40\r
+        [TestMethod]\r
+        public void Message_ShouldIncludeElementGraphAccrossAppDomain()\r
+        {\r
+            PermissionSet ps = new PermissionSet(PermissionState.None);\r
+            ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));\r
+            ps.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.MemberAccess));\r
+\r
+            //Create a new sandboxed domain \r
+            AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation;\r
+            AppDomain newDomain = AppDomain.CreateDomain("test domain", null, setup, ps);\r
+\r
+            Worker remoteWorker = (Worker)newDomain.CreateInstanceAndUnwrap(\r
+                Assembly.GetExecutingAssembly().FullName,\r
+                typeof(Worker).FullName);\r
+\r
+            var expectationIndex = new int[] { 1, 2, 3, 10};\r
+\r
+            var expectations = new ExpectationCollection<CompositionError, string>();\r
+            CompositionError error = null;\r
+\r
+            error = CreateCompositionErrorWithElementChain(1);\r
+            expectations.Add(error, GetElementGraphString(error));\r
+\r
+            error = CreateCompositionErrorWithElementChain(2);\r
+            expectations.Add(error, GetElementGraphString(error));\r
+\r
+            error = CreateCompositionErrorWithElementChain(3);\r
+            expectations.Add(error, GetElementGraphString(error));\r
+\r
+            error = CreateCompositionErrorWithElementChain(10);\r
+            expectations.Add(error, GetElementGraphString(error));\r
+\r
+            int index = 0;\r
+            foreach (var e in expectations)\r
+            {\r
+                try\r
+                {\r
+                    remoteWorker.Action = (int x) => \r
+                    {\r
+                        var lclExpectations = new ExpectationCollection<CompositionError, string>();\r
+\r
+                        var lclError = CreateCompositionErrorWithElementChain(x);\r
+                        lclExpectations.Add(lclError, GetElementGraphString(lclError));\r
+\r
+                        var ce =  CreateCompositionException(new CompositionError[] { lclExpectations[0].Input });\r
+                        throw ce;\r
+                    };\r
+                    remoteWorker.DoWork(expectationIndex[index]);\r
+                }\r
+                catch (CompositionException compositionException)\r
+                {\r
+                    string result = compositionException.ToString();\r
+                    string expected = FixMessage(e.Output);\r
+                    StringAssert.Contains(result, expected);\r
+                }\r
+                catch (Exception exception)\r
+                {\r
+                    Assert.Fail(exception.ToString());\r
+                }\r
+                ++index;\r
+            }\r
+        }\r
+#endif\r
         [TestMethod]\r
         public void Message_ShouldIncludeErrors()\r
         { \r
@@ -341,7 +442,7 @@ namespace System.ComponentModel.Composition
             expectations.Add(ErrorFactory.CreateFromDsl("Error(Exception)"),                "1<Separator> Exception|<Prefix>Error");\r
             expectations.Add(ErrorFactory.CreateFromDsl("Error(Exception(Exception))"),     "1<Separator> Exception|<Prefix>Exception|<Prefix>Error");\r
             expectations.Add(ErrorFactory.CreateFromDsl("Error(Error(Exception)|Error)"),   "1<Separator> Exception|<Prefix>Error|<Prefix>Error|2<Separator> Error|<Prefix>Error");\r
-            \r
+\r
             foreach (var e in expectations)\r
             {\r
                 var exception = CreateCompositionException(e.Input);\r
@@ -350,6 +451,47 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
+#if !SILVERLIGHT && CLR40\r
+        [TestMethod]\r
+        public void Message_ShouldIncludeErrorsAccrossAppDomain()\r
+        {\r
+            PermissionSet ps = new PermissionSet(PermissionState.None);\r
+            ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));\r
+            ps.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.MemberAccess));\r
+\r
+            //Create a new sandboxed domain \r
+            AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation;\r
+            AppDomain newDomain = AppDomain.CreateDomain("test domain", null, setup, ps);\r
+\r
+            Worker remoteWorker = (Worker)newDomain.CreateInstanceAndUnwrap(\r
+                Assembly.GetExecutingAssembly().FullName,\r
+                typeof(Worker).FullName);\r
+\r
+            int index = 0;\r
+            foreach (var expectation in Worker.expectations)\r
+            {\r
+                try\r
+                {\r
+                    remoteWorker.Action = (int x) => \r
+                    {\r
+                        Exception e = CreateCompositionException(Worker.expectations[x].Input);\r
+                        throw e;\r
+                    };\r
+\r
+                    remoteWorker.DoWork(index);\r
+                }\r
+                catch(CompositionException e)\r
+                {\r
+                    AssertMessage(e, expectation.Output.Split('|'));\r
+                }\r
+                catch(Exception e)\r
+                {\r
+                    Assert.Fail(e.ToString());\r
+                }\r
+                ++index;\r
+            }\r
+        }\r
+#endif\r
         [TestMethod]\r
         public void Messsage_ShouldIncludeCountOfRootCauses()\r
         {\r
@@ -367,7 +509,7 @@ namespace System.ComponentModel.Composition
                 var exception = CreateCompositionException(e.Input);\r
 \r
                 AssertMessage(exception, e.Output, CultureInfo.CurrentCulture);\r
-            }          \r
+            }\r
         }\r
 \r
         [TestMethod]\r
@@ -390,57 +532,7 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
-#if !SILVERLIGHT\r
-\r
-        [TestMethod]\r
-        public void Constructor6_NullAsInfoArgument_ShouldThrowArgumentNull()\r
-        {\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsArgument<ArgumentNullException>("info", () =>\r
-            {\r
-                SerializationTestServices.Create<CompositionException>((SerializationInfo)null, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithMissingIdEntryAsInfoArgument_ShouldThrowSerialization()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoRemovingMember<CompositionException>("Errors");\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsSerialization("Errors", () =>\r
-            {\r
-                SerializationTestServices.Create<CompositionException>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void Constructor6_SerializationInfoWithWrongTypeForIdEntryAsInfoArgument_ShouldThrowInvalidCast()\r
-        {\r
-            var info = SerializationTestServices.CreateSerializationInfoReplacingMember<CompositionException>("Errors", 10);\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.Throws<InvalidCastException>(() =>\r
-            {\r
-                SerializationTestServices.Create<CompositionException>(info, context);\r
-            });\r
-        }\r
-\r
-        [TestMethod]\r
-        public void InnerException_CanBeSerialized()\r
-        {\r
-            var expectations = Expectations.GetInnerExceptions();\r
-\r
-            foreach (var e in expectations)\r
-            {\r
-                var exception = CreateCompositionException(e);\r
-\r
-                var result = SerializationTestServices.RoundTrip(exception);\r
-\r
-                ExtendedAssert.IsInstanceOfSameType(exception.InnerException, result.InnerException);\r
-            }\r
-        }\r
+#if !SILVERLIGHT && CLR40\r
 \r
         [TestMethod]\r
         public void Message_CanBeSerialized()\r
@@ -475,18 +567,6 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
-        [TestMethod]\r
-        public void GetObjectData_NullAsInfoArgument_ShouldThrowArgumentNull()\r
-        {\r
-            var exception = (ISerializable)CreateCompositionException();\r
-            var context = new StreamingContext();\r
-\r
-            ExceptionAssert.ThrowsArgument<ArgumentNullException>("info", () =>\r
-            {\r
-                exception.GetObjectData((SerializationInfo)null, context);\r
-            });\r
-        }\r
-\r
 #endif\r
         private string GetElementGraphString(CompositionError error)\r
         {\r
@@ -597,4 +677,4 @@ namespace System.ComponentModel.Composition
             return new CompositionException(message, innerException, errors);\r
         }\r
     }\r
-}
\ No newline at end of file
+}\r
index b53543a0572844aa5c5d2b999140092b540f4992..9ef33a3f852f1f8be42a0ba6eec074b13fa945af 100644 (file)
@@ -131,8 +131,6 @@ namespace System.ComponentModel.Composition
             Assert.IsTrue(predicate(exportDefinition));\r
         }\r
 \r
-#if SILVERLIGHT\r
-\r
         [TestMethod]\r
         public void PartCreatorConstraint_ShouldMatchPartCreatorExportDefinition()\r
         {\r
@@ -163,7 +161,6 @@ namespace System.ComponentModel.Composition
             Assert.IsTrue(partCreatorImportDef.IsConstraintSatisfiedBy(exportDefinition));\r
             Assert.IsTrue(predicate(exportDefinition));\r
         }\r
-#endif\r
 \r
         [TestMethod]\r
         public void TryParseConstraint_ConstraintFromCreateConstraintAsConstraintArgument1_CanParse()\r
index 091c7a34977ee35c33855e1053b9903b4ffd2993..19dd66bf5a64e7b125f3d254fe2d78b476880c07 100644 (file)
@@ -85,24 +85,27 @@ namespace System.ComponentModel.Composition
         }\r
 \r
         [TestMethod]\r
-        public void Constructor2_ArrayWithNullKeyAsRequiredMetadataArgument_ShouldThrowArgument()\r
+        public void RequiredMetadata_ArrayWithNullKeyAsRequiredMetadataArgument_ShouldThrowInvalidOperation()\r
         {\r
             var requiredMetadata = new KeyValuePair<string, Type>[] { new KeyValuePair<string, Type>(null, typeof(object)) };\r
 \r
-            ExceptionAssert.ThrowsArgument<ArgumentException>("requiredMetadata", () =>\r
+            var import = new ContractBasedImportDefinition("requiredMetadata", (string)null, requiredMetadata, ImportCardinality.ExactlyOne, false, false, CreationPolicy.Any);\r
+\r
+            ExceptionAssert.Throws<InvalidOperationException>(() =>\r
             {\r
-                new ContractBasedImportDefinition("requiredMetadata", (string)null, requiredMetadata, ImportCardinality.ExactlyOne, false, false, CreationPolicy.Any);\r
+                var m = import.RequiredMetadata;\r
             });\r
         }\r
 \r
         [TestMethod]\r
-        public void Constructor2_ArrayWithNullValueAsRequiredMetadataArgument_ShouldThrowArgument()\r
+        public void RequiredMetadata_ArrayWithNullValueAsRequiredMetadataArgument_ShouldThrowInvalidOperation()\r
         {\r
             var requiredMetadata = new KeyValuePair<string, Type>[] { new KeyValuePair<string, Type>("key", null) };\r
+            var import = new ContractBasedImportDefinition("requiredMetadata", (string)null, requiredMetadata, ImportCardinality.ExactlyOne, false, false, CreationPolicy.Any);\r
 \r
-            ExceptionAssert.ThrowsArgument<ArgumentException>("requiredMetadata", () =>\r
+            ExceptionAssert.Throws<InvalidOperationException>(() =>\r
             {\r
-                new ContractBasedImportDefinition("requiredMetadata", (string)null, requiredMetadata, ImportCardinality.ExactlyOne, false, false, CreationPolicy.Any);\r
+                var m = import.RequiredMetadata;\r
             });\r
         }\r
 \r
index b9e88b4fda6763fa823d5f297e542534b8134d15..32f74b8ce7d848e99495ecf898ef80700bb85398 100644 (file)
@@ -13,6 +13,7 @@ namespace System.ComponentModel.Composition.Diagnostics
     [TestClass]\r
     public class ComposableTraceSourceTests\r
     {\r
+#if !SILVERLIGHT\r
         [TestMethod]\r
         public void CanWriteInformation_ShouldReturnFalseByDefault()\r
         {\r
@@ -31,8 +32,6 @@ namespace System.ComponentModel.Composition.Diagnostics
             Assert.IsTrue(CompositionTraceSource.CanWriteError);\r
         }\r
 \r
-#if !SILVERLIGHT\r
-\r
         [TestMethod]\r
         public void CanWriteInformation_WhenSwitchLevelLessThanInformation_ShouldReturnFalse()\r
         {\r
@@ -428,7 +427,7 @@ namespace System.ComponentModel.Composition.Diagnostics
                 if (level == 0)\r
                     continue;\r
                 \r
-                if (level.HasFlag(sourceLevel) == on)\r
+                if (((level & sourceLevel) == sourceLevel) == on)\r
                 {\r
                     yield return level;\r
                 }\r
@@ -458,5 +457,72 @@ namespace System.ComponentModel.Composition.Diagnostics
         }\r
 #endif\r
 \r
+#if SILVERLIGHT\r
+        [TestMethod]\r
+        public void CanWriteInformation_ShouldReturnFalse()\r
+        {\r
+            Assert.IsFalse(CompositionTraceSource.CanWriteInformation);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void CanWriteWarning_ShouldReturnDebuggerLogging()\r
+        {\r
+            Assert.AreEqual(CompositionTraceSource.CanWriteWarning, Debugger.IsLogging());\r
+        }\r
+\r
+        [TestMethod]\r
+        public void CanWriteError_ShouldReturnDebuggerLogging()\r
+        {\r
+            Assert.AreEqual(CompositionTraceSource.CanWriteError, Debugger.IsLogging());\r
+        }\r
+\r
+        [TestMethod]\r
+        public void CreateLogMessage_ContainsTraceEventType()\r
+        {\r
+            IEnumerable<SilverlightTraceWriter.TraceEventType> eventTypes = Expectations.GetEnumValues<SilverlightTraceWriter.TraceEventType>();\r
+            \r
+            foreach(var eventType in eventTypes)\r
+            {\r
+                string message = SilverlightTraceWriter.CreateLogMessage(eventType, CompositionTraceId.Discovery_AssemblyLoadFailed, "Format");\r
+                Assert.IsTrue(message.Contains(eventType.ToString()), "Should contain enum string of EventType");\r
+            }            \r
+        }\r
+\r
+        [TestMethod]\r
+        public void CreateLogMessage_ContainsTraceIdAsInt()\r
+        {\r
+            IEnumerable<CompositionTraceId> traceIds = Expectations.GetEnumValues<CompositionTraceId>();\r
+            \r
+            foreach(var traceId in traceIds)\r
+            {\r
+                string message = SilverlightTraceWriter.CreateLogMessage(SilverlightTraceWriter.TraceEventType.Information, traceId, "Format");\r
+                Assert.IsTrue(message.Contains(((int)traceId).ToString()), "Should contain int version of TraceId");\r
+            }            \r
+        }\r
+\r
+        [TestMethod]\r
+        public void CreateLogMessage_FormatNull_ThrowsArugmentNull()\r
+        {\r
+            ExceptionAssert.ThrowsArgumentNull("format", () =>\r
+                SilverlightTraceWriter.CreateLogMessage(SilverlightTraceWriter.TraceEventType.Information, CompositionTraceId.Discovery_AssemblyLoadFailed, null));\r
+        }\r
+\r
+        [TestMethod]\r
+        public void CreateLogMessage_ArgumentsNull_ShouldCreateValidString()\r
+        {\r
+            string message = SilverlightTraceWriter.CreateLogMessage(SilverlightTraceWriter.TraceEventType.Information, CompositionTraceId.Discovery_AssemblyLoadFailed, "Format", null);\r
+\r
+            Assert.IsFalse(string.IsNullOrEmpty(message));\r
+        }\r
+\r
+        [TestMethod]\r
+        public void CreateLogMessage_ArgumentsPassed_ShouldCreateValidString()\r
+        {\r
+            string message = SilverlightTraceWriter.CreateLogMessage(SilverlightTraceWriter.TraceEventType.Information, CompositionTraceId.Discovery_AssemblyLoadFailed, "{0}", 9999);\r
+\r
+            Assert.IsTrue(message.Contains("9999"));\r
+        }\r
+#endif\r
+\r
     }\r
 }\r
index 7c22be1623cb68973226a1760f2cd33cc6318eaf..7dae8376ecfbe962ae5fd7255f81b6e63a8a2f0a 100644 (file)
@@ -210,8 +210,10 @@ namespace System.ComponentModel.Composition
             yield return new Exception();\r
             yield return new ArgumentException();\r
             yield return new SystemException();\r
+#if CLR40\r
             yield return new CompositionException();\r
             yield return new ImportCardinalityMismatchException();\r
+#endif\r
         }\r
 \r
         public static IEnumerable<Exception> GetInnerExceptionsWithNull()\r
index 3b318fdf0eec070860579e86e681a53ed31bcb71..c891c964180b0e6ca355ccf0644a7526c1be16d2 100644 (file)
@@ -3,30 +3,63 @@
 // -----------------------------------------------------------------------\r
 using System;\r
 using System.ComponentModel.Composition.Primitives;\r
+using System.ComponentModel.Composition.Hosting;\r
 using System.Linq;\r
+using System.Linq.Expressions;\r
 \r
 namespace System.ComponentModel.Composition.Factories\r
 {\r
     partial class CatalogFactory\r
     {\r
-        private class FilteredComposablePartCatalog : ComposablePartCatalog\r
+        public class FilteredCatalog : ComposablePartCatalog, INotifyComposablePartCatalogChanged\r
         {\r
-            private readonly IQueryable<ComposablePartDefinition> _filteredParts;\r
+            private readonly ComposablePartCatalog _inner;\r
+            private readonly INotifyComposablePartCatalogChanged _innerNotifyChange;\r
+            private readonly IQueryable<ComposablePartDefinition> _partsQuery;\r
 \r
-            public FilteredComposablePartCatalog(ComposablePartCatalog catalog, Func<ComposablePartDefinition, bool> filter)\r
+            public FilteredCatalog(ComposablePartCatalog inner,\r
+                                   Func<ComposablePartDefinition, bool> filter)\r
             {\r
-                this._filteredParts = catalog.Parts.Where(filter).AsQueryable();\r
-\r
-                // Do we care about hooking the the catalog changed events? Not for my particular tests.\r
+                _inner = inner;\r
+                _innerNotifyChange = inner as INotifyComposablePartCatalogChanged;\r
+                _partsQuery = inner.Parts.Where(filter).AsQueryable();\r
             }\r
 \r
             public override IQueryable<ComposablePartDefinition> Parts\r
             {\r
                 get\r
                 {\r
-                    return this._filteredParts;\r
+                    return _partsQuery;\r
+                }\r
+            }\r
+\r
+            public event EventHandler<ComposablePartCatalogChangeEventArgs> Changed\r
+            {\r
+                add\r
+                {\r
+                    if (_innerNotifyChange != null)\r
+                        _innerNotifyChange.Changed += value;\r
+                }\r
+                remove\r
+                {\r
+                    if (_innerNotifyChange != null)\r
+                        _innerNotifyChange.Changed -= value;\r
+                }\r
+            }\r
+\r
+            public event EventHandler<ComposablePartCatalogChangeEventArgs> Changing\r
+            {\r
+                add\r
+                {\r
+                    if (_innerNotifyChange != null)\r
+                        _innerNotifyChange.Changing += value;\r
+                }\r
+                remove\r
+                {\r
+                    if (_innerNotifyChange != null)\r
+                        _innerNotifyChange.Changing -= value;\r
                 }\r
             }\r
         }\r
     }\r
-}
\ No newline at end of file
+}\r
index d563e09dde12d43c03e596ec8fffdc7422345baa..cb957a2d3036474030ce2093e82cbb8d0110211a 100644 (file)
@@ -2,12 +2,11 @@
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
 using System;\r
-using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Hosting;\r
 using System.ComponentModel.Composition.Primitives;\r
 using System.Linq;\r
+using System.Linq.Expressions;\r
 using System.Reflection;\r
-using System.Collections;\r
 \r
 namespace System.ComponentModel.Composition.Factories\r
 {\r
@@ -72,7 +71,7 @@ namespace System.ComponentModel.Composition.Factories
 \r
         public static ComposablePartCatalog CreateFiltered(ComposablePartCatalog catalog, Func<ComposablePartDefinition, bool> filter)\r
         {\r
-            return new FilteredComposablePartCatalog(catalog, filter);\r
+            return new FilteredCatalog(catalog, filter);\r
         }\r
     }\r
 }\r
index 544b53ec23d4ded27dcee8a2c32666d2ca5fcfff..4e2d5cacaa387cde4b3f8804072661a85e34b634 100644 (file)
@@ -34,6 +34,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void Constructor1_ShouldSetPartsPropertyToEmpty()\r
         {\r
             var catalog = new AggregateCatalog();\r
@@ -58,6 +60,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void Constructor3_NullAsCatalogsArgument_ShouldSetPartsPropertyToEmpty()\r
         {\r
             var catalog = new AggregateCatalog((IEnumerable<ComposablePartCatalog>)null);\r
@@ -66,6 +70,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void Constructor3_EmptyIEnumerableAsCatalogsArgument_ShouldSetPartsPropertyToEmpty()\r
         {\r
             var catalog = new AggregateCatalog(Enumerable.Empty<ComposablePartCatalog>());\r
@@ -489,6 +495,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void AggregatingCatalogAddAndRemoveChildren()\r
         {\r
             int changedCount = 0;\r
@@ -558,6 +566,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void AggregatingCatalogAddAndRemoveNestedChildren()\r
         {\r
             int changedCount = 0;\r
@@ -613,6 +623,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void AggregatingDisposedAndNotifications()\r
         {\r
             int changedCount = 0;\r
@@ -742,6 +754,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void CatalogEvents_AggregateAddRemove()\r
         {\r
             var catalog = new AggregateCatalog();\r
@@ -749,6 +763,8 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void CatalogEvents_DeepAggregateAddRemove()\r
         {\r
             var deepCatalog = new AggregateCatalog();\r
index 47707dfab98161c9803613afb4a8617f0d468472..3e0eb928b815a3e5fc02d88194c27e961f024f3b 100644 (file)
@@ -479,9 +479,80 @@ namespace System.ComponentModel.Composition
             Assert.AreEqual(exportValue, importerPart.Value, "Importer was unexpectedly recomposed");\r
         }\r
 \r
+        [TestMethod]\r
+        public void CanBeCollectedAfterDispose()\r
+        {\r
+            AggregateExportProvider sourceExportProvider = new AggregateExportProvider();\r
+            var catalog = new AggregateCatalog(CatalogFactory.CreateDefaultAttributed());\r
+            var catalogExportProvider = new CatalogExportProvider(catalog);\r
+            catalogExportProvider.SourceProvider = sourceExportProvider;\r
+\r
+            WeakReference weakCatalogExportProvider = new WeakReference(catalogExportProvider);\r
+            catalogExportProvider.Dispose();\r
+            catalogExportProvider = null;\r
+\r
+            GC.Collect();\r
+            GC.WaitForPendingFinalizers();\r
+\r
+            Assert.IsFalse(weakCatalogExportProvider.IsAlive);\r
+\r
+            GC.KeepAlive(sourceExportProvider);\r
+            GC.KeepAlive(catalog);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void RemovingAndReAddingMultipleDefinitionsFromCatalog()\r
+        {\r
+            var fixedParts = new TypeCatalog(typeof(RootMultipleImporter), typeof(ExportedService));\r
+            var changingParts = new TypeCatalog(typeof(Exporter1), typeof(Exporter2));\r
+            var catalog = new AggregateCatalog();\r
+            catalog.Catalogs.Add(fixedParts);\r
+            catalog.Catalogs.Add(changingParts);\r
+            var catalogExportProvider = new CatalogExportProvider(catalog);\r
+            catalogExportProvider.SourceProvider = catalogExportProvider;\r
+\r
+            var root = catalogExportProvider.GetExport<RootMultipleImporter>().Value;\r
+            Assert.AreEqual(2, root.Imports.Length);\r
+\r
+            catalog.Catalogs.Remove(changingParts);\r
+            Assert.AreEqual(0, root.Imports.Length);\r
+\r
+            catalog.Catalogs.Add(changingParts);\r
+            Assert.AreEqual(2, root.Imports.Length);\r
+        }\r
+\r
+        [Export]\r
+        public class RootMultipleImporter\r
+        {\r
+            [ImportMany(AllowRecomposition = true)]\r
+            public IExportedInterface[] Imports { get; set; }\r
+        }\r
+        public interface IExportedInterface\r
+        {\r
+        }\r
+        [Export(typeof(IExportedInterface))]\r
+        public class Exporter1 : IExportedInterface\r
+        {\r
+            [Import]\r
+            public ExportedService Service { get; set; }\r
+        }\r
+        [Export(typeof(IExportedInterface))]\r
+        public class Exporter2 : IExportedInterface\r
+        {\r
+            [Import]\r
+            public ExportedService Service { get; set; }\r
+        }\r
+        [Export]\r
+        public class ExportedService\r
+        {\r
+        }\r
+\r
+\r
+\r
         private static ImportDefinition ImportFromContract(string contractName)\r
         {\r
             return ImportDefinitionFactory.CreateDefault(contractName,\r
+\r
                                                      ImportCardinality.ZeroOrMore,\r
                                                      false,\r
                                                      false);\r
index 348d82cff82e8840a0a40b56e8def0f1adc3a436..73d8c873c5d5b134074f505be0cb2204c309d584 100644 (file)
@@ -663,8 +663,6 @@ namespace System.ComponentModel.Composition
             Assert.AreEqual(0, exports.Count());\r
         }\r
 \r
-        [Ignore]\r
-        [WorkItem(744984)]\r
         [TestMethod]\r
         public void TestOptionalMetadataValueTypeMismatch()\r
         {\r
@@ -803,6 +801,239 @@ namespace System.ComponentModel.Composition
             Assert.AreEqual(4, data.Length);\r
         }\r
 \r
+        [AttributeUsage(AttributeTargets.Class, AllowMultiple=true)]\r
+        [MetadataAttribute]\r
+        public class DataAttribute : Attribute\r
+        {\r
+            public object Object { get; set; }\r
+        }\r
+\r
+        [Export]\r
+        [Data(Object="42")]\r
+        [Data(Object = "10")]\r
+        public class ExportWithMultipleMetadata_ExportStringsAsObjects\r
+        {\r
+        }\r
+\r
+        [Export]\r
+        [Data(Object = "42")]\r
+        [Data(Object = "10")]\r
+        [Data(Object = null)]\r
+        public class ExportWithMultipleMetadata_ExportStringsAsObjects_WithNull\r
+        {\r
+        }\r
+\r
+        [Export]\r
+        [Data(Object = 42)]\r
+        [Data(Object = 10)]\r
+        public class ExportWithMultipleMetadata_ExportIntsAsObjects\r
+        {\r
+        }\r
+\r
+        [Export]\r
+        [Data(Object = null)]\r
+        [Data(Object = 42)]\r
+        [Data(Object = 10)]\r
+        public class ExportWithMultipleMetadata_ExportIntsAsObjects_WithNull\r
+        {\r
+        }\r
+\r
+        public interface IObjectView_AsStrings\r
+        {\r
+            string[] Object { get; }\r
+        }\r
+\r
+        public interface IObjectView_AsInts\r
+        {\r
+            int[] Object { get; }\r
+        }\r
+\r
+        public interface IObjectView\r
+        {\r
+            object[] Object { get; }\r
+        }\r
+\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportStringsAsObjects_ShouldDiscoverMetadataAsStrings()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new ExportWithMultipleMetadata_ExportStringsAsObjects());\r
+\r
+            var export = container.GetExport<ExportWithMultipleMetadata_ExportStringsAsObjects, IObjectView_AsStrings>();\r
+            Assert.IsNotNull(export);\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+            Assert.IsNotNull(export.Metadata.Object);\r
+            Assert.AreEqual(2, export.Metadata.Object.Length);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportStringsAsObjects_With_Null_ShouldDiscoverMetadataAsStrings()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new ExportWithMultipleMetadata_ExportStringsAsObjects_WithNull());\r
+\r
+            var export = container.GetExport<ExportWithMultipleMetadata_ExportStringsAsObjects_WithNull, IObjectView_AsStrings>();\r
+            Assert.IsNotNull(export);\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+            Assert.IsNotNull(export.Metadata.Object);\r
+            Assert.AreEqual(3, export.Metadata.Object.Length);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportIntsAsObjects_ShouldDiscoverMetadataAsInts()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new ExportWithMultipleMetadata_ExportIntsAsObjects());\r
+\r
+            var export = container.GetExport<ExportWithMultipleMetadata_ExportIntsAsObjects, IObjectView_AsInts>();\r
+            Assert.IsNotNull(export);\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+            Assert.IsNotNull(export.Metadata.Object);\r
+            Assert.AreEqual(2, export.Metadata.Object.Length);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportIntsAsObjects_With_Null_ShouldDiscoverMetadataAsObjects()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new ExportWithMultipleMetadata_ExportIntsAsObjects_WithNull());\r
+\r
+            var exports = container.GetExports<ExportWithMultipleMetadata_ExportIntsAsObjects_WithNull, IObjectView_AsInts>();\r
+            Assert.IsFalse(exports.Any());\r
+\r
+            var export = container.GetExport<ExportWithMultipleMetadata_ExportIntsAsObjects_WithNull, IObjectView>();\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+            Assert.IsNotNull(export.Metadata.Object);\r
+            Assert.AreEqual(3, export.Metadata.Object.Length);\r
+        }\r
+\r
+        [MetadataAttribute]\r
+        [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]\r
+        public class OrderAttribute : Attribute\r
+        {\r
+            public string Before { get; set; }\r
+            public string After { get; set; }\r
+        }\r
+\r
+        public interface IOrderMetadataView\r
+        {\r
+            string[] Before { get; }\r
+            string[] After { get; }\r
+        }\r
+\r
+        [Export]\r
+        [Order(Before = "Step3")]\r
+        [Order(Before = "Step2")]\r
+        public class OrderedItemBeforesOnly\r
+        {\r
+        }\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportStringsAndNulls_ThroughMetadataAttributes()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new OrderedItemBeforesOnly());\r
+\r
+            var export = container.GetExport<OrderedItemBeforesOnly, IOrderMetadataView>();\r
+            Assert.IsNotNull(export);\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+\r
+            Assert.IsNotNull(export.Metadata.Before);\r
+            Assert.IsNotNull(export.Metadata.After);\r
+\r
+            Assert.AreEqual(2, export.Metadata.Before.Length);\r
+            Assert.AreEqual(2, export.Metadata.After.Length);\r
+\r
+            Assert.IsNotNull(export.Metadata.Before[0]);\r
+            Assert.IsNotNull(export.Metadata.Before[1]);\r
+\r
+            Assert.IsNull(export.Metadata.After[0]);\r
+            Assert.IsNull(export.Metadata.After[1]);\r
+        }\r
+\r
+        [MetadataAttribute]\r
+        [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]\r
+        public class DataTypeAttribute : Attribute\r
+        {\r
+            public Type Type { get; set; }\r
+        }\r
+\r
+        public interface ITypesMetadataView\r
+        {\r
+            Type[] Type { get; }\r
+        }\r
+\r
+        [Export]\r
+        [DataType(Type = typeof(int))]\r
+        [DataType(Type = typeof(string))]\r
+        public class ItemWithTypeExports\r
+        {\r
+        }\r
+\r
+        [Export]\r
+        [DataType(Type = typeof(int))]\r
+        [DataType(Type = typeof(string))]\r
+        [DataType(Type = null)]\r
+        public class ItemWithTypeExports_WithNulls\r
+        {\r
+        }\r
+\r
+        [Export]\r
+        [DataType(Type = null)]\r
+        [DataType(Type = null)]\r
+        [DataType(Type = null)]\r
+        public class ItemWithTypeExports_WithAllNulls\r
+        {\r
+        }\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportTypes()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new ItemWithTypeExports());\r
+\r
+            var export = container.GetExport<ItemWithTypeExports, ITypesMetadataView>();\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+            Assert.IsNotNull(export.Metadata.Type);\r
+            Assert.AreEqual(2, export.Metadata.Type.Length);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportTypes_WithNulls()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new ItemWithTypeExports_WithNulls());\r
+\r
+            var export = container.GetExport<ItemWithTypeExports_WithNulls, ITypesMetadataView>();\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+            Assert.IsNotNull(export.Metadata.Type);\r
+            Assert.AreEqual(3, export.Metadata.Type.Length);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void ExportWithMultipleMetadata_ExportTypes_WithAllNulls()\r
+        {\r
+            var container = ContainerFactory.Create();\r
+            container.ComposeParts(new ItemWithTypeExports_WithAllNulls());\r
+\r
+            var export = container.GetExport<ItemWithTypeExports_WithAllNulls, ITypesMetadataView>();\r
+\r
+            Assert.IsNotNull(export.Metadata);\r
+            Assert.IsNotNull(export.Metadata.Type);\r
+            Assert.AreEqual(3, export.Metadata.Type.Length);\r
+\r
+            Assert.IsNull(export.Metadata.Type[0]);\r
+            Assert.IsNull(export.Metadata.Type[1]);\r
+            Assert.IsNull(export.Metadata.Type[2]);\r
+        }\r
         [Export]\r
         [ExportMetadata(null, "ValueOfNullKey")]\r
         public class ClassWithNullMetadataKey\r
@@ -821,6 +1052,10 @@ namespace System.ComponentModel.Composition
 \r
     }\r
 \r
+\r
+\r
+\r
+\r
     // Tests for metadata issues on export\r
 \r
     [Export]\r
index fe22570eb6191b2d0bfed966c46d0ed3640d628a..862402cd1b208c1fe55281670ab1ae3458955b36 100644 (file)
@@ -12,6 +12,7 @@ namespace System.ComponentModel.Composition
     [TestClass]\r
     public class MetadataViewProviderTests\r
     {\r
+\r
         [TestMethod]\r
         public void GetMetadataView_InterfaceWithPropertySetter_ShouldThrowNotSupported()\r
         {\r
@@ -285,6 +286,23 @@ namespace System.ComponentModel.Composition
             Assert.AreEqual(120, view.MyInt);\r
         }\r
 \r
+\r
+        [TestMethod]\r
+        public void GetMetadataView_IMetadataViewWithDefaultedIntAndInvalidMetadata()\r
+        {\r
+            Dictionary<string, object> metadata = new Dictionary<string, object>();\r
+            metadata = new Dictionary<string, object>();\r
+            metadata.Add("MyInt", 1.2);\r
+            var view1 = MetadataViewProvider.GetMetadataView<IMetadataViewWithDefaultedInt>(metadata);\r
+            Assert.AreEqual(120, view1.MyInt);\r
+\r
+            metadata = new Dictionary<string, object>();\r
+            metadata.Add("MyInt", "Hello, World");\r
+            var view2 = MetadataViewProvider.GetMetadataView<IMetadataViewWithDefaultedInt>(metadata);\r
+            Assert.AreEqual(120, view2.MyInt);\r
+        }\r
+\r
+\r
         public interface IMetadataViewWithDefaultedBool\r
         {\r
             [DefaultValue(false)]\r
@@ -361,5 +379,23 @@ namespace System.ComponentModel.Composition
 \r
             Assert.IsInstanceOfType(exception.InnerException, typeof(TargetInvocationException));\r
         }\r
+\r
+        public interface IHasInt32\r
+        {\r
+            Int32 Value { get; }\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestMetadataIntConversion()\r
+        {\r
+            var metadata = new Dictionary<string, object>();\r
+            metadata["Value"] = (Int64)45;\r
+\r
+            var exception = ExceptionAssert.Throws<CompositionContractMismatchException>(() =>\r
+            {\r
+                MetadataViewProvider.GetMetadataView<IHasInt32>(metadata);\r
+            });\r
+        }\r
+\r
     }\r
 }
\ No newline at end of file
index 5ddd646310d061638d4cb1e77b68b00b147d9c21..4bf0be6b52a36f76c3c865bca22c0d9b6aabe345 100644 (file)
@@ -35,6 +35,8 @@ namespace System.ComponentModel.Composition.Primitives
         }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void Parts_ShouldNotCacheUnderlyingParts()\r
         {\r
             var catalog = CatalogFactory.CreateAggregateCatalog();\r
index 2163d9100f9979aa8695bdd397ec095e66d5b76d..4cf4d95b94ef21ba34ad1238eea467eaca389924 100644 (file)
@@ -869,24 +869,22 @@ namespace System.ComponentModel.Composition.ReflectionModel
             });\r
         }\r
 \r
-#if SILVERLIGHT\r
-\r
         [TestMethod]\r
-        public void IsPartCreatorImportDefinition_NullImport_ShouldThrowArgumentNull()\r
+        public void IsExportFactoryImportDefinition_NullImport_ShouldThrowArgumentNull()\r
         {\r
             ExceptionAssert.ThrowsArgumentNull("importDefinition", () =>\r
-                ReflectionModelServices.IsPartCreatorImportDefinition(null));\r
+                ReflectionModelServices.IsExportFactoryImportDefinition(null));\r
         }\r
         \r
         [TestMethod]\r
-        public void IsPartCreatorImportDefinition_InvalidImport_ShouldThrowArgument()\r
+        public void IsExportFactoryImportDefinition_InvalidImport_ShouldThrowArgument()\r
         {\r
             ExceptionAssert.ThrowsArgument("importDefinition", () =>\r
-                ReflectionModelServices.IsPartCreatorImportDefinition(CreateInvalidImport()));\r
+                ReflectionModelServices.IsExportFactoryImportDefinition(CreateInvalidImport()));\r
         }\r
         \r
         [TestMethod]\r
-        public void IsPartCreatorImportDefinition_NonPartCreatorImport_ShouldReturnFalse()\r
+        public void IsExportFactoryImportDefinition_NonPartCreatorImport_ShouldReturnFalse()\r
         {\r
             var import = ReflectionModelServices.CreateImportDefinition(\r
                 new LazyMemberInfo(MemberTypes.Field, () => new MemberInfo[] { typeof(ReflectionModelServicesTests) }), // bogus member\r
@@ -898,11 +896,11 @@ namespace System.ComponentModel.Composition.ReflectionModel
                 CreationPolicy.Any,\r
                 null);\r
 \r
-            Assert.IsFalse(ReflectionModelServices.IsPartCreatorImportDefinition(import));\r
+            Assert.IsFalse(ReflectionModelServices.IsExportFactoryImportDefinition(import));\r
         }\r
 \r
         [TestMethod]\r
-        public void IsPartCreatorImportDefinition_PartCreatorImport_ShouldReturnTrue()\r
+        public void IsExportFactoryImportDefinition_PartCreatorImport_ShouldReturnTrue()\r
         {\r
             var import = ReflectionModelServices.CreateImportDefinition(\r
                 new LazyMemberInfo(MemberTypes.Field, () => new MemberInfo[] { typeof(ReflectionModelServicesTests) }), // bogus member\r
@@ -915,7 +913,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
                 true, //isPartCreator\r
                 null);\r
 \r
-            Assert.IsTrue(ReflectionModelServices.IsPartCreatorImportDefinition(import));\r
+            Assert.IsTrue(ReflectionModelServices.IsExportFactoryImportDefinition(import));\r
         }\r
 \r
         [TestMethod]\r
@@ -974,8 +972,6 @@ namespace System.ComponentModel.Composition.ReflectionModel
             EnumerableAssert.AreEqual(import.RequiredMetadata, import2.RequiredMetadata);\r
         }\r
 \r
-#endif\r
-\r
         private static IEnumerable<ImportDefinition> CreateInvalidImports()\r
         {\r
             yield return new ContractBasedImportDefinition("Foo", "Foo", null, ImportCardinality.ZeroOrMore, false, false, CreationPolicy.Any);\r
diff --git a/mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/Integration/AdaptingCollectionTests.cs b/mcs/class/System.ComponentModel.Composition/Tests/ComponentModelUnitTest/System/Integration/AdaptingCollectionTests.cs
new file mode 100644 (file)
index 0000000..442cfd5
--- /dev/null
@@ -0,0 +1,405 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Collections.Specialized;\r
+using System.ComponentModel.Composition.Hosting;\r
+using System.ComponentModel.Composition.Primitives;\r
+using System.Linq;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+using System.ComponentModel.Composition.Factories;\r
+\r
+namespace System.ComponentModel.Composition\r
+{\r
+    public class FilteringCollection<T, M> : AdaptingCollection<T, M>\r
+    {\r
+        public FilteringCollection(Func<Lazy<T, M>, bool> filter)\r
+            : base(e => e.Where(filter))\r
+        {\r
+        }\r
+    }\r
+\r
+    public class OrderingCollection<T, M> : AdaptingCollection<T, M>\r
+    {\r
+        public OrderingCollection(Func<Lazy<T, M>, object> keySelector)\r
+            : this(keySelector, false)\r
+        {\r
+        }\r
+\r
+        public OrderingCollection(Func<Lazy<T, M>, object> keySelector, bool descending)\r
+            : base(e => descending ? e.OrderByDescending(keySelector) : e.OrderBy(keySelector))\r
+        {\r
+        }\r
+    }\r
+\r
+    public class AdaptingCollection<T> : AdaptingCollection<T, IDictionary<string, object>>\r
+    {\r
+        public AdaptingCollection(Func<IEnumerable<Lazy<T, IDictionary<string, object>>>, \r
+                                       IEnumerable<Lazy<T, IDictionary<string, object>>>> adaptor)\r
+            : base(adaptor)\r
+        {\r
+        }\r
+    }\r
+\r
+    public class AdaptingCollection<T, M> : ICollection<Lazy<T, M>>, INotifyCollectionChanged\r
+    {\r
+        private readonly List<Lazy<T, M>> _allItems = new List<Lazy<T, M>>();\r
+        private readonly Func<IEnumerable<Lazy<T, M>>, IEnumerable<Lazy<T, M>>> _adaptor = null;\r
+        private List<Lazy<T, M>> _adaptedItems = null;\r
+\r
+        public AdaptingCollection() : this(null)\r
+        {\r
+        }\r
+\r
+        public AdaptingCollection(Func<IEnumerable<Lazy<T, M>>, IEnumerable<Lazy<T, M>>> adaptor)\r
+        {\r
+            this._adaptor = adaptor;\r
+        }\r
+\r
+        public event NotifyCollectionChangedEventHandler CollectionChanged;\r
+\r
+        public void ReapplyAdaptor()\r
+        {\r
+            if (this._adaptedItems != null)\r
+            {\r
+                this._adaptedItems = null;\r
+                this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));\r
+            }\r
+        }\r
+\r
+        protected virtual IEnumerable<Lazy<T, M>> Adapt(IEnumerable<Lazy<T, M>> collection)\r
+        {\r
+            if (this._adaptor != null)\r
+            {\r
+                return this._adaptor.Invoke(collection);\r
+            }\r
+\r
+            return collection;\r
+        }\r
+\r
+        protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs e)\r
+        {\r
+            NotifyCollectionChangedEventHandler collectionChanged = this.CollectionChanged;\r
+\r
+            if (collectionChanged != null)\r
+            {\r
+                collectionChanged.Invoke(this, e);\r
+            }\r
+        }\r
+\r
+        private List<Lazy<T, M>> AdaptedItems\r
+        {\r
+            get\r
+            {\r
+                if (this._adaptedItems == null)\r
+                {\r
+                    this._adaptedItems = Adapt(this._allItems).ToList();\r
+                }\r
+\r
+                return this._adaptedItems;\r
+            }\r
+        }\r
+\r
+        #region ICollection Implementation\r
+        // Accessors work directly against adapted collection\r
+        public bool Contains(Lazy<T, M> item)\r
+        {\r
+            return this.AdaptedItems.Contains(item);\r
+        }\r
+\r
+        public void CopyTo(Lazy<T, M>[] array, int arrayIndex)\r
+        {\r
+            this.AdaptedItems.CopyTo(array, arrayIndex);\r
+        }\r
+\r
+        public int Count\r
+        {\r
+            get { return this.AdaptedItems.Count; }\r
+        }\r
+\r
+        public bool IsReadOnly\r
+        {\r
+            get { return false; }\r
+        }\r
+\r
+        public IEnumerator<Lazy<T, M>> GetEnumerator()\r
+        {\r
+            return this.AdaptedItems.GetEnumerator();\r
+        }\r
+\r
+        Collections.IEnumerator Collections.IEnumerable.GetEnumerator()\r
+        {\r
+            return this.GetEnumerator();\r
+        }\r
+\r
+        // Mutation methods work against complete collection\r
+        // and then force a reset of the adapted collection\r
+        public void Add(Lazy<T, M> item)\r
+        {\r
+            this._allItems.Add(item);\r
+            ReapplyAdaptor();\r
+        }\r
+\r
+        public void Clear()\r
+        {\r
+            this._allItems.Clear();\r
+            ReapplyAdaptor();\r
+        }\r
+\r
+        public bool Remove(Lazy<T, M> item)\r
+        {\r
+            bool removed = this._allItems.Remove(item);\r
+            ReapplyAdaptor();\r
+            return removed;\r
+        }\r
+        #endregion\r
+    }\r
+\r
+    [TestClass]\r
+    public class AdaptingCollectionTests\r
+    {\r
+        public interface IContract { }\r
+        public interface INetworkAwareMetadata\r
+        {\r
+            [DefaultValue(false)]\r
+            bool RequiresOnline { get; }\r
+        }\r
+\r
+        [Export(typeof(IContract))]\r
+        [ExportMetadata("RequiresOnline", true)]\r
+        public class NetworkExport : IContract { }\r
+\r
+        [Export(typeof(IContract))]\r
+        public class NonNetworkExport : IContract { }\r
+\r
+        public class FilterExports\r
+        {\r
+            public FilterExports()\r
+            {\r
+                this.OnlineOnly = new AdaptingCollection<IContract, INetworkAwareMetadata>(e =>\r
+                    e.Where(p => p.Metadata.RequiresOnline));\r
+\r
+                this.OnlineOnly2 = new FilteringCollection<IContract, INetworkAwareMetadata>(p => p.Metadata.RequiresOnline);\r
+            }\r
+\r
+            [ImportMany]\r
+            public AdaptingCollection<IContract, INetworkAwareMetadata> OnlineOnly { get; set; }\r
+\r
+            [ImportMany]\r
+            public FilteringCollection<IContract, INetworkAwareMetadata> OnlineOnly2 { get; set; }\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestFilteringImports()\r
+        {\r
+            var container = ContainerFactory.CreateWithAttributedCatalog(typeof(NetworkExport), typeof(NonNetworkExport));\r
+\r
+            var filterExports = new FilterExports();\r
+            container.ComposeParts(filterExports);\r
+\r
+            Assert.AreEqual(1, filterExports.OnlineOnly.Count);\r
+            Assert.AreEqual(1, filterExports.OnlineOnly2.Count);\r
+        }\r
+\r
+        public interface IOrderMetadata\r
+        {\r
+            [DefaultValue(Int32.MaxValue)]\r
+            int Order { get; }\r
+        }\r
+\r
+        [Export(typeof(IContract))]\r
+        [ExportMetadata("Order", 2)]\r
+        public class BExport : IContract { }\r
+\r
+        [Export(typeof(IContract))]\r
+        [ExportMetadata("Order", 1)]\r
+        public class AExport : IContract { }\r
+\r
+        [Export(typeof(IContract))]\r
+        public class CExport : IContract { }\r
+\r
+        public class OrderExportsByMetadata\r
+        {\r
+            public OrderExportsByMetadata()\r
+            {\r
+                this.OrderedItems = new AdaptingCollection<IContract, IOrderMetadata>(e =>\r
+                    e.OrderBy(p => p.Metadata.Order));\r
+\r
+                this.OrderedItems2 = new OrderingCollection<IContract, IOrderMetadata>(p => p.Metadata.Order);\r
+            }\r
+\r
+            [ImportMany]\r
+            public AdaptingCollection<IContract, IOrderMetadata> OrderedItems { get; set; }\r
+\r
+            [ImportMany]\r
+            public OrderingCollection<IContract, IOrderMetadata> OrderedItems2 { get; set; }\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestOrderingImportsByMetadata()\r
+        {\r
+            var container = ContainerFactory.CreateWithAttributedCatalog(typeof(BExport), typeof(AExport), typeof(CExport));\r
+            var orderExports = new OrderExportsByMetadata();\r
+\r
+            container.ComposeParts(orderExports);\r
+\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(0).Value, typeof(AExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(1).Value, typeof(BExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(2).Value, typeof(CExport));\r
+\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems2.ElementAt(0).Value, typeof(AExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems2.ElementAt(1).Value, typeof(BExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems2.ElementAt(2).Value, typeof(CExport));\r
+        }\r
+\r
+        public class OrderExportsByName\r
+        {\r
+            public OrderExportsByName(bool descending)\r
+            {\r
+                if (descending)\r
+                {\r
+                    this.OrderedItems = new AdaptingCollection<IContract>(e =>\r
+                        e.OrderByDescending(p => p.Value.GetType().FullName));\r
+                }\r
+                else\r
+                {\r
+                    this.OrderedItems = new AdaptingCollection<IContract>(e =>\r
+                        e.OrderBy(p => p.Value.GetType().FullName));\r
+                }\r
+            }\r
+\r
+            [ImportMany]\r
+            public AdaptingCollection<IContract> OrderedItems { get; set; }\r
+        }\r
+\r
+\r
+        [TestMethod]\r
+        public void TestOrderingImportsByTypeName()\r
+        {\r
+            var container = ContainerFactory.CreateWithAttributedCatalog(typeof(BExport), typeof(AExport), typeof(CExport));\r
+            var orderExports = new OrderExportsByName(false);\r
+\r
+            container.ComposeParts(orderExports);\r
+\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(0).Value, typeof(AExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(1).Value, typeof(BExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(2).Value, typeof(CExport));\r
+\r
+            orderExports = new OrderExportsByName(true);\r
+\r
+            container.ComposeParts(orderExports);\r
+\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(0).Value, typeof(CExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(1).Value, typeof(BExport));\r
+            Assert.IsInstanceOfType(orderExports.OrderedItems.ElementAt(2).Value, typeof(AExport));\r
+        }\r
+\r
+        public interface IDynamicFilteredMetadata\r
+        {\r
+            bool Dynamic { get; }\r
+        }\r
+\r
+        [Export(typeof(IContract))]\r
+        [ExportMetadata("Dynamic", true)]\r
+        public class Dynamic1 : IContract { }\r
+\r
+        [Export(typeof(IContract))]\r
+        [ExportMetadata("Dynamic", true)]\r
+        public class Dynamic2 : IContract { }\r
+\r
+        [Export(typeof(IContract))]\r
+        [ExportMetadata("Dynamic", false)]\r
+        public class NonDynamic1 : IContract { }\r
+\r
+        public class DynamicFilteredCollection<T, M> : AdaptingCollection<T, M> where M : IDynamicFilteredMetadata\r
+        {\r
+            public DynamicFilteredCollection()\r
+            {\r
+            }\r
+\r
+            private bool _includeDynamic = false;\r
+            public bool IncludeDynamic \r
+            {\r
+                get { return this._includeDynamic; }\r
+                set \r
+                {\r
+                    if (this._includeDynamic != value)\r
+                    {\r
+                        this.ReapplyAdaptor();\r
+                    }\r
+\r
+                    this._includeDynamic = value;\r
+                }\r
+            }\r
+\r
+            protected override IEnumerable<Lazy<T, M>> Adapt(IEnumerable<Lazy<T, M>> collection)\r
+            {\r
+                return collection.Where(p => !p.Metadata.Dynamic || IncludeDynamic);\r
+            }\r
+        }\r
+\r
+        public class DynamicExports\r
+        {\r
+            [ImportMany]\r
+            public DynamicFilteredCollection<IContract, IDynamicFilteredMetadata> DynamicCollection { get; set; }\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestDyamicallyFilteringImports()\r
+        {\r
+            var container = ContainerFactory.CreateWithAttributedCatalog(typeof(Dynamic1), typeof(Dynamic2), typeof(NonDynamic1));\r
+            var dynamicExports = new DynamicExports();\r
+\r
+            container.ComposeParts(dynamicExports);\r
+\r
+            Assert.AreEqual(1, dynamicExports.DynamicCollection.Count);\r
+\r
+            dynamicExports.DynamicCollection.IncludeDynamic = true;\r
+\r
+            Assert.AreEqual(3, dynamicExports.DynamicCollection.Count);\r
+        }\r
+\r
+        public class DynamicExportsNoSubType\r
+        {\r
+            public DynamicExportsNoSubType()\r
+            {\r
+                this.DynamicCollection = new AdaptingCollection<IContract, IDynamicFilteredMetadata>(e =>\r
+                    e.Where(p => !p.Metadata.Dynamic || this.IncludeDynamic));\r
+            }\r
+\r
+            private bool _includeDynamic = false;\r
+            public bool IncludeDynamic\r
+            {\r
+                get { return this._includeDynamic; }\r
+                set\r
+                {\r
+                    if (this._includeDynamic != value)\r
+                    {\r
+                        this.DynamicCollection.ReapplyAdaptor();\r
+                    }\r
+\r
+                    this._includeDynamic = value;\r
+                }\r
+            }\r
+\r
+            [ImportMany]\r
+            public AdaptingCollection<IContract, IDynamicFilteredMetadata> DynamicCollection { get; set; }\r
+        }\r
+\r
+        [TestMethod]\r
+        public void TestDyamicallyFilteringNoSubTypeImports()\r
+        {\r
+            var container = ContainerFactory.CreateWithAttributedCatalog(typeof(Dynamic1), typeof(Dynamic2), typeof(NonDynamic1));\r
+            var dynamicExports = new DynamicExportsNoSubType();\r
+\r
+            container.ComposeParts(dynamicExports);\r
+\r
+            Assert.AreEqual(1, dynamicExports.DynamicCollection.Count);\r
+\r
+            dynamicExports.IncludeDynamic = true;\r
+\r
+            Assert.AreEqual(3, dynamicExports.DynamicCollection.Count);\r
+        }\r
+    }\r
+}\r
index 0acb70dd50e0afbfbebfb4a939206837ea3d6fd0..0b11315804f0799e24bc11e5c06476da1b5f1b18 100644 (file)
@@ -52,6 +52,34 @@ namespace System.ComponentModel.Composition
             Assert.IsTrue(contC.IsPresent<ScopeCComponent>());\r
         }\r
 \r
+        [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
+        public void FilteredCatalog_EventsFired()\r
+        {\r
+            var aggCatalog = CatalogFactory.CreateAggregateCatalog();\r
+            var cat1 = CatalogFactory.CreateAttributed(typeof(ScopeAComponent1), typeof(ScopeBComponent));\r
+\r
+            var filteredCatalog = CatalogFactory.CreateFiltered(aggCatalog, \r
+                partDef => partDef.Metadata.ContainsKey("Scope") &&\r
+                                    partDef.Metadata["Scope"].ToString() == "A");\r
+\r
+            var container = ContainerFactory.Create(filteredCatalog);\r
+\r
+            Assert.IsFalse(container.IsPresent<ScopeAComponent1>(), "sa before add");\r
+            Assert.IsFalse(container.IsPresent<ScopeBComponent>(), "sb before add");\r
+\r
+            aggCatalog.Catalogs.Add(cat1);\r
+\r
+            Assert.IsTrue(container.IsPresent<ScopeAComponent1>(), "sa after add");\r
+            Assert.IsFalse(container.IsPresent<ScopeBComponent>(), "sb after add");\r
+\r
+            aggCatalog.Catalogs.Remove(cat1);\r
+\r
+            Assert.IsFalse(container.IsPresent<ScopeAComponent1>(), "sa after remove");\r
+            Assert.IsFalse(container.IsPresent<ScopeBComponent>(), "sb after remove");\r
+        }\r
+\r
         private ComposablePartCatalog GetCatalog()\r
         {\r
             return CatalogFactory.CreateAttributed(\r
index f8b5b9b83c1a6a214b232e757b34365311fa6aba..3744048f8ae8e65984d0a5379a30dd85b32ac3f3 100644 (file)
@@ -113,6 +113,8 @@ namespace System.ComponentModel.Composition
         public class SampleCatalogExport2 { }\r
 \r
         [TestMethod]\r
+        [Ignore]\r
+        [WorkItem(812029)]\r
         public void CatalogMultipleAdds_ShouldFireEvents()\r
         {\r
             var catalog = new TypeCatalog(typeof(SampleCatalogExport));\r
index 2af956b2760b70fd645c5a158bfa70b21e195c5e..1ec36109f930bf00feae4f30ea20aa3be96d7533 100644 (file)
@@ -461,5 +461,105 @@ namespace Tests.Integration
             Assert.AreEqual(42, value.Import.Property);\r
         }\r
 \r
+        [TestMethod]\r
+        [WorkItem(789269)]\r
+        public void TestRemovingAndReAddingMultipleDefinitionsFromCatalog()\r
+        {\r
+            var fixedParts = new TypeCatalog(typeof(RootMultipleImporter), typeof(ExportedService));\r
+            var changingParts = new TypeCatalog(typeof(Exporter1), typeof(Exporter2));\r
+            var catalog = new AggregateCatalog();\r
+            catalog.Catalogs.Add(fixedParts);\r
+            catalog.Catalogs.Add(changingParts);\r
+\r
+            var container = new CompositionContainer(catalog);\r
+\r
+            var root = container.GetExport<RootMultipleImporter>().Value;\r
+\r
+            Assert.AreEqual(2, root.Imports.Length);\r
+\r
+            catalog.Catalogs.Remove(changingParts);\r
+\r
+            Assert.AreEqual(0, root.Imports.Length);\r
+\r
+            catalog.Catalogs.Add(changingParts);\r
+\r
+            Assert.AreEqual(2, root.Imports.Length);\r
+        }\r
+\r
+        [Export]\r
+        public class RootMultipleImporter\r
+        {\r
+            [ImportMany(AllowRecomposition=true)]\r
+            public IExportedInterface[] Imports { get; set; }\r
+        }\r
+\r
+        public interface IExportedInterface\r
+        {\r
+\r
+        }\r
+\r
+        [Export(typeof(IExportedInterface))]\r
+        public class Exporter1 : IExportedInterface\r
+        {\r
+            [Import]\r
+            public ExportedService Service { get; set; }\r
+        }\r
+\r
+        [Export(typeof(IExportedInterface))]\r
+        public class Exporter2 : IExportedInterface\r
+        {\r
+            [Import]\r
+            public ExportedService Service { get; set; }\r
+        }\r
+\r
+        [Export]\r
+        public class ExportedService\r
+        {\r
+\r
+        }\r
+\r
+        [TestMethod]\r
+        [WorkItem(762215)]\r
+        [Ignore]\r
+        public void TestPartCreatorResurrection()\r
+        {\r
+            var container = new CompositionContainer(new TypeCatalog(typeof(NonDisposableImportsDisposable), typeof(PartImporter<NonDisposableImportsDisposable>)));\r
+            var exports = container.GetExports<PartImporter<NonDisposableImportsDisposable>>();\r
+            Assert.AreEqual(0, exports.Count());\r
+            container.ComposeParts(new DisposablePart());\r
+            exports = container.GetExports<PartImporter<NonDisposableImportsDisposable>>();\r
+            Assert.AreEqual(1, exports.Count());\r
+        }\r
+\r
+        [Export]\r
+        public class PartImporter<PartType>\r
+        {\r
+            [Import]\r
+            public PartType Creator { get; set; }\r
+        }\r
+\r
+        [Export]\r
+        public class NonDisposableImportsDisposable\r
+        {\r
+            [Import]\r
+            public DisposablePart Part { get; set; }\r
+        }\r
+\r
+        [Export]\r
+        public class Part\r
+        {\r
+\r
+        }\r
+        [Export]\r
+        [PartCreationPolicy(CreationPolicy.NonShared)]\r
+        public class DisposablePart : Part, IDisposable\r
+        {\r
+            public bool Disposed { get; private set; }\r
+            public void Dispose()\r
+            {\r
+                Disposed = true;\r
+            }\r
+        }\r
+\r
     }\r
 }\r
index 4d680da2495beadbcafb513783dae4c890f0d23c..d043eef0a20190f4509243fc2e00f48618433311 100644 (file)
@@ -1,8 +1,8 @@
-//------------------------------------------------------------\r
+//------------------------------------------------------------\r
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 //------------------------------------------------------------\r
 [assembly: System.CLSCompliant(true)]\r
 [assembly: System.Reflection.AssemblyTitle("System.ComponentModel.Composition.UnitTestFramework")]\r
 [assembly: System.Reflection.AssemblyCopyright("(c) Microsoft Corporation. All rights reserved.")]\r
-[assembly: System.Reflection.AssemblyVersion("2009.26.08")]\r
+[assembly: System.Reflection.AssemblyVersion("2010.02.11")]\r
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.ComponentModel.Composition.UnitTests")]\r
diff --git a/mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/System/ComponentModel/Composition/Hosting/CompositionHostTestService.cs b/mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/System/ComponentModel/Composition/Hosting/CompositionHostTestService.cs
new file mode 100644 (file)
index 0000000..fc96063
--- /dev/null
@@ -0,0 +1,46 @@
+#if SILVERLIGHT \r
+using System;\r
+using System.Net;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+using System.ComponentModel.Composition;\r
+using System.ComponentModel.Composition.Hosting;\r
+using System.ComponentModel.Composition.Primitives;\r
+\r
+namespace System.ComponentModel.Composition.Hosting\r
+{\r
+    public static class CompositionHostTestService\r
+    {\r
+        public static void SetupTestGlobalContainer(CompositionContainer container)\r
+        {\r
+            CompositionHost._container = null;\r
+            CompositionHost.Initialize(container);\r
+        }\r
+\r
+        public static void SetupTestGlobalContainer(ComposablePartCatalog catalog)\r
+        {\r
+            CompositionHost._container = null;\r
+            CompositionHost.Initialize(catalog);\r
+        }\r
+\r
+        public static void ClearGlobalContainer()\r
+        {\r
+            CompositionHost._container = null;\r
+        }\r
+\r
+        public static void ResetGlobalContainer()\r
+        {\r
+            ClearGlobalContainer();\r
+#if !BUILDING_IN_VS\r
+            // We can only use the default SL Deployment option while building in VS otherwise we \r
+            // will not have a proper Application/Deployment object setup.\r
+            SetupTestGlobalContainer(new AssemblyCatalog(typeof(CompositionHostTestService).Assembly));\r
+#endif\r
+        }\r
+\r
+        public static CompositionContainer GlobalContainer\r
+        {\r
+            get { return CompositionHost._container; }\r
+        }\r
+    }\r
+}\r
+#endif\r
diff --git a/mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/System/ComponentModel/Composition/ReflectionModel/ReflectionModelServicesEx.cs b/mcs/class/System.ComponentModel.Composition/Tests/UnitTestFramework/System/ComponentModel/Composition/ReflectionModel/ReflectionModelServicesEx.cs
new file mode 100644 (file)
index 0000000..75b483e
--- /dev/null
@@ -0,0 +1,155 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.ComponentModel.Composition;\r
+using System.Linq;\r
+using System.Linq.Expressions;\r
+using System.UnitTesting;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+using System.Reflection;\r
+using System.ComponentModel.Composition.Hosting;\r
+using System.Collections.Generic;\r
+using System.ComponentModel.Composition.Primitives;\r
+\r
+// NOTE : this is a helper class for exosig the EditorFactory functionality to tests until ExportFactory can be moved where it belongs\r
+namespace System.ComponentModel.Composition.ReflectionModel\r
+{\r
+    public static class ReflectionModelServicesEx\r
+    {\r
+        public static ContractBasedImportDefinition CreateImportDefinition(\r
+            Lazy<ParameterInfo> parameter,\r
+            string contractName,\r
+            string requiredTypeIdentity,\r
+            IEnumerable<KeyValuePair<string, Type>> requiredMetadata,\r
+            ImportCardinality cardinality,\r
+            CreationPolicy requiredCreationPolicy,\r
+            bool isExportFactory,\r
+            ICompositionElement origin)\r
+        {\r
+            return ReflectionModelServices.CreateImportDefinition(parameter, contractName, requiredTypeIdentity, requiredMetadata, cardinality, requiredCreationPolicy, isExportFactory, origin);\r
+        }\r
+\r
+        public static ContractBasedImportDefinition CreateImportDefinition(\r
+                LazyMemberInfo importingMember,\r
+                string contractName,\r
+                string requiredTypeIdentity,\r
+                IEnumerable<KeyValuePair<string, Type>> requiredMetadata,\r
+                ImportCardinality cardinality,\r
+                bool isRecomposable,\r
+                CreationPolicy requiredCreationPolicy,\r
+                bool isExportFactory,\r
+                ICompositionElement origin)\r
+        {\r
+            return ReflectionModelServices.CreateImportDefinition(importingMember, contractName, requiredTypeIdentity, requiredMetadata, cardinality, isRecomposable, requiredCreationPolicy, isExportFactory, origin);\r
+        }\r
+\r
+        public static bool IsExportFactoryImportDefinition(ImportDefinition importDefinition)\r
+        {\r
+            return ReflectionModelServices.IsExportFactoryImportDefinition(importDefinition);\r
+        }\r
+\r
+        public static ContractBasedImportDefinition CreateExportFactoryImportDefinition(ContractBasedImportDefinition productImportDefinition)\r
+        {\r
+            return new ExportFactoryImportDefinition(productImportDefinition);\r
+        }\r
+\r
+        private class ExportFactoryImportDefinition : ContractBasedImportDefinition, IPartCreatorImportDefinition\r
+        {\r
+            private readonly ContractBasedImportDefinition _productImportDefinition;\r
+\r
+            public ExportFactoryImportDefinition(ContractBasedImportDefinition productImportDefinition)\r
+                : base(CompositionConstants.PartCreatorContractName, CompositionConstants.PartCreatorTypeIdentity, productImportDefinition.RequiredMetadata,\r
+                    productImportDefinition.Cardinality, productImportDefinition.IsRecomposable, false, CreationPolicy.Any)\r
+            {\r
+                _productImportDefinition = productImportDefinition;\r
+            }\r
+\r
+            public ContractBasedImportDefinition ProductImportDefinition\r
+            {\r
+                get\r
+                {\r
+                    return _productImportDefinition;\r
+                }\r
+            }\r
+\r
+            public override Expression<Func<ExportDefinition, bool>> Constraint\r
+            {\r
+                get\r
+                {\r
+                    return CreateExportFactoryConstraint(base.Constraint, this._productImportDefinition);\r
+                }\r
+            }\r
+\r
+            public override bool IsConstraintSatisfiedBy(ExportDefinition exportDefinition)\r
+            {\r
+                if (!base.IsConstraintSatisfiedBy(exportDefinition))\r
+                {\r
+                    return false;\r
+                }\r
+\r
+                return IsProductConstraintSatisfiedBy(this._productImportDefinition, exportDefinition);\r
+            }\r
+\r
+            private static bool IsProductConstraintSatisfiedBy(ImportDefinition productImportDefinition, ExportDefinition exportDefinition)\r
+            {\r
+                object productValue = null;\r
+                if (exportDefinition.Metadata.TryGetValue(CompositionConstants.ProductDefinitionMetadataName, out productValue))\r
+                {\r
+                    ExportDefinition productDefinition = productValue as ExportDefinition;\r
+\r
+                    if (productDefinition != null)\r
+                    {\r
+                        return productImportDefinition.IsConstraintSatisfiedBy(productDefinition);\r
+                    }\r
+                }\r
+\r
+                return false;\r
+            }\r
+\r
+            private static readonly PropertyInfo _exportDefinitionMetadataProperty = typeof(ExportDefinition).GetProperty("Metadata");\r
+            private static readonly MethodInfo _metadataContainsKeyMethod = typeof(IDictionary<string, object>).GetMethod("ContainsKey");\r
+            private static readonly MethodInfo _metadataItemMethod = typeof(IDictionary<string, object>).GetMethod("get_Item");\r
+\r
+            private static Expression<Func<ExportDefinition, bool>> CreateExportFactoryConstraint(Expression<Func<ExportDefinition, bool>> baseConstraint, ImportDefinition productImportDefinition)\r
+            {\r
+                ParameterExpression exportDefinitionParameter = baseConstraint.Parameters[0];\r
+\r
+                // exportDefinition.Metadata\r
+                Expression metadataExpression = Expression.Property(exportDefinitionParameter, _exportDefinitionMetadataProperty);\r
+\r
+                // exportDefinition.Metadata.ContainsKey("ProductDefinition")\r
+                Expression containsProductExpression = Expression.Call(\r
+                    metadataExpression,\r
+                    _metadataContainsKeyMethod,\r
+                    Expression.Constant(CompositionConstants.ProductDefinitionMetadataName));\r
+\r
+                // exportDefinition.Metadata["ProductDefinition"]\r
+                Expression productExportDefinitionExpression = Expression.Call(\r
+                        metadataExpression,\r
+                        _metadataItemMethod,\r
+                        Expression.Constant(CompositionConstants.ProductDefinitionMetadataName));\r
+\r
+                // ProductImportDefinition.Contraint((ExportDefinition)exportDefinition.Metadata["ProductDefinition"])\r
+                Expression productMatchExpression =\r
+                    Expression.Invoke(productImportDefinition.Constraint,\r
+                        Expression.Convert(productExportDefinitionExpression, typeof(ExportDefinition)));\r
+\r
+                // baseContraint(exportDefinition) &&\r
+                // exportDefinition.Metadata.ContainsKey("ProductDefinition") &&\r
+                // ProductImportDefinition.Contraint((ExportDefinition)exportDefinition.Metadata["ProductDefinition"])\r
+                Expression<Func<ExportDefinition, bool>> constraint =\r
+                     Expression.Lambda<Func<ExportDefinition, bool>>(\r
+                        Expression.AndAlso(\r
+                            baseConstraint.Body,\r
+                            Expression.AndAlso(\r
+                               containsProductExpression,\r
+                               productMatchExpression)),\r
+                        exportDefinitionParameter);\r
+\r
+                return constraint;\r
+            }\r
+        }\r
+\r
+    }\r
+}
\ No newline at end of file
index 0cc7ba8237cffaf7b422372393a10ca83282af91..c75dcc759ba27fe585ee539d32db950cfa45ef48 100644 (file)
@@ -21,7 +21,7 @@ namespace System.UnitTesting
             Assert.IsNotNull(exception);\r
 \r
             // Exception of type '[typename]' was thrown\r
-            StringAssert.Contains(exception.Message, "'" + exception.GetType().FullName + "'");\r
+            StringAssert.Contains(exception.Message, exception.GetType().FullName);\r
         }\r
 \r
         /// <summary>\r
index ce7c8564600fc6d3d9beca5e97ac182355b0922f..3bde43f25333169bc26431848bc552ca03301184 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">\r
+    <CodeAnalysisRuleSet>Migrated rules for UnitTestFramework.ruleset</CodeAnalysisRuleSet>\r
+    <CodeAnalysisRules />\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <OutputPath>..\..\bin</OutputPath>\r
+    <DefineConstants>$(DefineConstants);TRACE</DefineConstants>\r
+    <NoWarn>1570;1572;1573;1591;1699</NoWarn>\r
+  </PropertyGroup>\r
   <PropertyGroup>\r
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
     <ProductVersion>9.0.30729</ProductVersion>\r
     <SchemaVersion>2.0</SchemaVersion>\r
-    <ProjectGuid>{786E5A34-975C-4F98-884C-A1DC3ED9E38D}</ProjectGuid>\r
+    <ProjectGuid>{35FBE8A0-D87E-4991-B3FC-2A77807DEC85}</ProjectGuid>\r
+    <ProjectClrTypes>FULLCLR;SILVERLIGHT</ProjectClrTypes>\r
     <OutputType>Library</OutputType>\r
     <AppDesignerFolder>Properties</AppDesignerFolder>\r
-    <RootNamespace>System.ComponentModel.Composition.UnitTestFramework</RootNamespace>\r
+    <RootNamespace>\r
+    </RootNamespace>\r
     <AssemblyName>System.ComponentModel.Composition.UnitTestFramework</AssemblyName>\r
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
     <FileAlignment>512</FileAlignment>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <DebugType>full</DebugType>\r
-    <Optimize>false</Optimize>\r
-    <OutputPath>..\..\bin\</OutputPath>\r
-    <DefineConstants>TRACE;DEBUG</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
     <NoWarn>;1699;1570;1572;1573;1591;0414</NoWarn>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
-    <DebugType>pdbonly</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>bin\Release\</OutputPath>\r
-    <DefineConstants>TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
+  <PropertyGroup>\r
+    <SignAssembly>true</SignAssembly>\r
+    <NoStdLib>true</NoStdLib>\r
   </PropertyGroup>\r
   <ItemGroup>\r
-    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />\r
+    <Reference Include="mscorlib" />\r
     <Reference Include="System" />\r
-    <Reference Include="System.Core">\r
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
-    </Reference>\r
-    <Reference Include="System.Data" />\r
-    <Reference Include="System.Xml.Linq">\r
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
-    </Reference>\r
+    <Reference Include="System.Core" />\r
     <Reference Include="System.Xml" />\r
-    <Reference Include="WindowsBase">\r
-      <RequiredTargetFramework>3.0</RequiredTargetFramework>\r
-    </Reference>\r
+    <ProjectReference Include="..\..\src\ComponentModel\ComponentModel.csproj">\r
+      <Project>{1BBA5101-D4F0-48B8-A5D6-7B23A099DCE3}</Project>\r
+      <Name>ComponentModel</Name>\r
+    </ProjectReference>\r
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />\r
+  </ItemGroup>\r
+  <ItemGroup Condition=" '$(IsSilverlight)' == 'true' ">\r
+    <ProjectReference Include="$(CMInitProjectPath)\Composition.Initialization.csproj">\r
+      <Project>{A497DC28-0A3B-4BAD-B964-B8B436686D98}</Project>\r
+      <Name>Composition.Initialization</Name>\r
+    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Compile Include="AssemblyInfo.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceContext.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceContext.TraceContextTraceListener.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceEventDetails.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceId.cs" />\r
-    <Compile Include="System\EnumExtensions.cs" />\r
     <Compile Include="System\Collections\EnumerableExtensions.cs" />\r
     <Compile Include="System\Collections\Generic\DictionaryExtensions.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ConstraintParser.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceId.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceContext.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceContext.TraceContextTraceListener.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceEventDetails.cs" />\r
     <Compile Include="System\ComponentModel\Composition\UnitTesting\CompositionAssert.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\UnitTesting\ElementAssert.cs" />\r
     <Compile Include="System\ComponentModel\Composition\UnitTesting\ErrorId.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\UnitTesting\ElementAssert.cs" />\r
     <Compile Include="System\ComponentModel\Composition\UnitTesting\ExportsAssert.cs" />\r
-    <Compile Include="System\DisposableObject.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionHostTestService.cs" />\r
+    <Compile Include="System\IO\TemporaryFileCopier.cs" />\r
+    <Compile Include="System\IO\TemporaryFile.cs" />\r
+    <Compile Include="System\ReferenceTracker.cs" />\r
     <Compile Include="System\Globalization\CurrentCultureContext.cs" />\r
     <Compile Include="System\IO\FileIO.cs" />\r
     <Compile Include="System\IO\TemporaryDirectory.cs" />\r
-    <Compile Include="System\IO\TemporaryFile.cs" />\r
-    <Compile Include="System\IO\TemporaryFileCopier.cs" />\r
-    <Compile Include="System\ReferenceTracker.cs" />\r
-    <Compile Include="System\Runtime\Serialization\SerializationTestServices.cs" />\r
+    <Compile Include="System\DisposableObject.cs" />\r
     <Compile Include="System\Runtime\Serialization\StrictFormatterConverter.cs" />\r
+    <Compile Include="System\Runtime\Serialization\SerializationTestServices.cs" />\r
     <Compile Include="System\TypeExtensions.cs" />\r
-    <Compile Include="System\UnitTesting\EnumerableAssert.cs" />\r
-    <Compile Include="System\UnitTesting\ExceptionAssert.cs" />\r
-    <Compile Include="System\UnitTesting\ExpectationCollectionOfI.cs" />\r
-    <Compile Include="System\UnitTesting\ExpectationCollectionOfIO.cs" />\r
-    <Compile Include="System\UnitTesting\ExpectationOfI.cs" />\r
-    <Compile Include="System\UnitTesting\ExpectationOfIO.cs" />\r
     <Compile Include="System\UnitTesting\ExtendedAssert.cs" />\r
-    <Compile Include="System\UnitTesting\ReflectionAssert.cs" />\r
     <Compile Include="System\UnitTesting\RetryMode.cs" />\r
+    <Compile Include="System\UnitTesting\ExpectationCollectionOfIO.cs" />\r
+    <Compile Include="System\UnitTesting\ExpectationCollectionOfI.cs" />\r
+    <Compile Include="System\UnitTesting\ExpectationOfIO.cs" />\r
+    <Compile Include="System\UnitTesting\ExpectationOfI.cs" />\r
     <Compile Include="System\UnitTesting\TestServices.cs" />\r
+    <Compile Include="System\UnitTesting\ReflectionAssert.cs" />\r
+    <Compile Include="System\UnitTesting\EnumerableAssert.cs" />\r
+    <Compile Include="System\UnitTesting\ExceptionAssert.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionModelServicesEx.cs" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ProjectReference Include="..\..\src\ComponentModel\ComponentModel.csproj">\r
-      <Project>{A36AEF66-2411-4225-B68E-F2D29368A31B}</Project>\r
-      <Name>ComponentModel</Name>\r
-    </ProjectReference>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <Folder Include="Properties\" />\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+      <ProductName>Windows Installer 3.1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
   </ItemGroup>\r
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
-       Other similar extension points exist, see Microsoft.Common.targets.\r
-  <Target Name="BeforeBuild">\r
-  </Target>\r
-  <Target Name="AfterBuild">\r
-  </Target>\r
-  -->\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />\r
 </Project>
\ No newline at end of file
index 788dd07bac89d732d6031b0a12849ad02a30a894..e77ac0d85531ca834cd19ac3686042750ef8336d 100644 (file)
@@ -1,19 +1,12 @@
-//------------------------------------------------------------\r
+//------------------------------------------------------------\r
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 //------------------------------------------------------------\r
-using System;\r
-using System.Diagnostics;\r
-using System.Reflection;\r
-using System.Resources;\r
-using System.Security;\r
-using System.Security.Permissions;\r
-using System.Runtime.CompilerServices;\r
-using System.Runtime.InteropServices;\r
+\r
 [assembly: System.CLSCompliant(true)]\r
 [assembly: System.Reflection.AssemblyTitle("System.ComponentModel.Composition")]\r
 [assembly: System.Reflection.AssemblyCopyright("(c) Microsoft Corporation. All rights reserved.")]\r
-[assembly: System.Reflection.AssemblyVersion("2009.22.10")]\r
+[assembly: System.Reflection.AssemblyVersion(Consts.FxVersion)]\r
+[assembly: System.Reflection.AssemblyKeyFile ("../ecma.pub")]\r
+[assembly: System.Reflection.AssemblyDelaySign (true)]\r
 //[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.ComponentModel.Composition.UnitTests")]\r
 //[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.ComponentModel.Composition.UnitTestFramework")]\r
-[assembly: AssemblyKeyFile ("../ecma.pub")]\r
-[assembly: AssemblyDelaySign (true)]\r
index 933f01199c6edb79175f9f49d375eb4c5bce19d5..75c4836b09d14989dd5e67738faf6d6b397a6aad 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">\r
+    <CodeAnalysisRuleSet>Migrated rules for ComponentModel.ruleset</CodeAnalysisRuleSet>\r
+    <CodeAnalysisRules />\r
+  </PropertyGroup>\r
+    <PropertyGroup>\r
+    <OutputPath>..\..\bin</OutputPath>\r
+    <DefineConstants>$(DefineConstants);TRACE</DefineConstants>\r
+    <NoWarn>1570;1572;1573;1591;1699</NoWarn>\r
+  </PropertyGroup>\r
   <PropertyGroup>\r
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
-    <ProductVersion>9.0.30729</ProductVersion>\r
+    <ProductVersion>10.0.20729</ProductVersion>\r
     <SchemaVersion>2.0</SchemaVersion>\r
-    <ProjectGuid>{A36AEF66-2411-4225-B68E-F2D29368A31B}</ProjectGuid>\r
+    <ProjectGuid>{1BBA5101-D4F0-48B8-A5D6-7B23A099DCE3}</ProjectGuid>\r
+    <ProjectClrTypes>FULLCLR;SILVERLIGHT</ProjectClrTypes>\r
     <OutputType>Library</OutputType>\r
-    <AppDesignerFolder>Properties</AppDesignerFolder>\r
     <RootNamespace>Microsoft.Internal</RootNamespace>\r
     <AssemblyName>System.ComponentModel.Composition</AssemblyName>\r
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
-    <FileAlignment>512</FileAlignment>\r
+    <DocumentationFile>$(OutputPath)\System.ComponentModel.Composition.xml</DocumentationFile>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <DebugType>full</DebugType>\r
-    <Optimize>false</Optimize>\r
-    <OutputPath>..\..\bin\</OutputPath>\r
-    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-    <NoWarn>1570;1572;1573;1591;1699</NoWarn>\r
-    <DocumentationFile>..\..\bin\System.ComponentModel.Composition.xml</DocumentationFile>\r
+  <PropertyGroup>\r
+    <SignAssembly>true</SignAssembly>\r
+    <NoStdLib>true</NoStdLib>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
-    <DebugType>pdbonly</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>bin\Release\</OutputPath>\r
-    <DefineConstants>TRACE</DefineConstants>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
+  <PropertyGroup Condition="'$(USE_CUSTOM_KEY)' != 'true'">\r
+    <CreateMetaAssembly>true</CreateMetaAssembly>\r
+    <CreateRefAssembly>true</CreateRefAssembly>\r
+    <PublishMetaAssemblyToSDK>true</PublishMetaAssemblyToSDK>\r
   </PropertyGroup>\r
   <ItemGroup>\r
+    <Reference Include="mscorlib" />\r
     <Reference Include="System" />\r
-    <Reference Include="System.Core">\r
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
-    </Reference>\r
+    <Reference Include="System.Core" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Compile Include="AssemblyInfo.cs" />\r
     <Compile Include="Microsoft\Internal\Assumes.cs" />\r
-    <Compile Include="Microsoft\Internal\Assumes.InternalErrorException.cs" />\r
     <Compile Include="Microsoft\Internal\AttributeServices.cs" />\r
-    <Compile Include="Microsoft\Internal\Collections\CollectionServices.CollectionOfObject.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\CollectionServices.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\ConditionalWeakTable.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\CollectionServices.CollectionOfObject.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\EnumerableCardinality.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionary.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionaryDebuggerProxy.cs" />\r
     <Compile Include="Microsoft\Internal\Collections\WeakReferenceCollection.cs" />\r
     <Compile Include="Microsoft\Internal\ContractServices.cs" />\r
+    <Compile Include="Microsoft\Internal\Assumes.InternalErrorException.cs" />\r
+    <Compile Include="Microsoft\Internal\SilverlightReflectionInvoke.cs" />\r
     <Compile Include="Microsoft\Internal\GenerationServices.cs" />\r
     <Compile Include="Microsoft\Internal\LazyServices.cs" />\r
     <Compile Include="Microsoft\Internal\Lock.cs" />\r
     <Compile Include="Microsoft\Internal\Lock.Reader.cs" />\r
     <Compile Include="Microsoft\Internal\Lock.Writer.cs" />\r
-    <Compile Include="Microsoft\Internal\ReflectionServices.cs" />\r
     <Compile Include="Microsoft\Internal\Requires.cs" />\r
     <Compile Include="Microsoft\Internal\Runtime\Serialization\SerializationServices.cs" />\r
     <Compile Include="Microsoft\Internal\StringComparers.cs" />\r
-    <Compile Include="SilverlightAdditions.cs" />\r
+    <Compile Include="Microsoft\Internal\ReflectionServices.cs" />\r
+    <Compile Include="Strings.Designer.cs">\r
+      <AutoGen>True</AutoGen>\r
+      <DesignTime>True</DesignTime>\r
+      <DependentUpon>Strings.resx</DependentUpon>\r
+      <CustomToolNamespace>Microsoft.Internal</CustomToolNamespace>\r
+    </Compile>\r
+    <Compile Include="SuppressMessages.cs" />\r
+    <Compile Include="SuppressMessagesBaselined.cs" />\r
     <Compile Include="System\ComponentModel\Composition\AttributedModelServices.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedExportDefinition.cs" />\r
     <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedModelDiscovery.cs" />\r
     <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedPartCreationInfo.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ChangeRejectedException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedExportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTrace.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceId.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ConstraintServices.cs" />\r
     <Compile Include="System\ComponentModel\Composition\CompositionContractMismatchException.cs" />\r
     <Compile Include="System\ComponentModel\Composition\CompositionError.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionErrorDebuggerProxy.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionErrorId.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionException.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CompositionResult.cs" />\r
     <Compile Include="System\ComponentModel\Composition\CompositionResultOfT.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ConstraintServices.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ContractNameServices.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\CreationPolicy.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTrace.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceId.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.PartCreatorExport.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionLock.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceSource.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\SilverlightTraceWriter.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceSourceTraceWriter.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceWriter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceSourceTraceWriter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\SilverlightTraceWriter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\InheritedExportAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportServices.DisposableLazy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AtomicComposition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AtomicCompositionExtensions.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionConstants.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.CatalogChangeProxy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\IPartCreatorImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorExportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorParameterImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorMemberImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\IAttributedImport.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportCardinalityMismatchException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportManyAttribute.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ErrorBuilder.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionErrorDebuggerProxy.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ExceptionBuilder.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportAttribute.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ExportCardinalityCheckResult.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportMetadataAttribute.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ExportServices.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ExportServices.DisposableLazy.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\AggregateCatalog.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\AggregateExportProvider.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\AssemblyCatalog.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\AssemblyCatalogDebuggerProxy.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\AtomicComposition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\AtomicCompositionExtensions.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.CatalogChangeProxy.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.CatalogExport.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.PartCreatorExport.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ComposablePartCatalogChangeEventArgs.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ComposablePartCatalogCollection.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ComposablePartExportProvider.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CompositionBatch.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CompositionBatch.SingleExportComposablePart.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionConstants.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CompositionContainer.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionLock.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\CompositionServices.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalog.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalog.DirectoryCatalogDebuggerProxy.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ExportProvider.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ExportProvider.GetExportOverrides.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ExportsChangeEventArgs.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.RecompositionManager.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.EngineContext.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.PartManager.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.RecompositionManager.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\INotifyComposablePartCatalogChanged.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Hosting\TypeCatalog.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\IAttributedImport.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ICompositionError.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ICompositionService.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ImportAttribute.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ImportCardinalityMismatchException.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ImportingConstructorAttribute.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ImportManyAttribute.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\InheritedExportAttribute.cs" />\r
     <Compile Include="System\ComponentModel\Composition\IPartImportsSatisfiedNotification.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\MetadataAttributeAttribute.cs" />\r
     <Compile Include="System\ComponentModel\Composition\MetadataServices.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\MetadataViewGenerator.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\MetadataViewProvider.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartCreationPolicyAttribute.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartCreatorOfT.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartCreatorOfTTMetadata.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartLifetimeContextOfT.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartMetadataAttribute.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartNotDiscoverableAttribute.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePart.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartCatalog.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartCatalogDebuggerProxy.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ICompositionElement.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ImportCardinality.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\ImportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\Primitives\IPartCreatorImportDefinition.cs" />\r
     <Compile Include="System\ComponentModel\Composition\Primitives\SerializableCompositionElement.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\DisposableReflectionComposablePart.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ExportingMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\IReflectionPartCreationInfo.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\LazyMemberInfo.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionImportDefinition.cs" />\r
+    <Compile Include="Microsoft\Internal\ReflectionInvoke.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionItemType.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataViewProvider.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\PartCreationPolicyAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\PartMetadataAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\PartNotDiscoverableAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionExtensions.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportingParameter.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportingItem.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ExportingMember.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportingMember.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportingParameter.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportType.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\IReflectionPartCreationInfo.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\LazyMemberInfo.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorExportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorMemberImportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorParameterImportDefinition.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionComposablePart.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionComposablePartDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionExtensions.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionField.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionImportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionItem.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionItemType.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMember.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMemberExportDefinition.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMemberImportDefinition.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMethod.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionModelServices.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionParameter.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionParameterImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionWritableMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataViewGenerator.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionField.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionParameter.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionProperty.cs" />\r
     <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionType.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionWritableMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionItem.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMethod.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ChangeRejectedException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionErrorId.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionResult.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ContractNameServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CreationPolicy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportMetadataAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ICompositionService.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataAttributeAttribute.cs" />\r
     <Compile Include="System\Lazy.cs" />\r
     <Compile Include="System\LazyOfTTMetadata.cs" />\r
     <Compile Include="System\Tuple.cs" />\r
-    <Compile Include="Strings.Designer.cs">\r
-      <AutoGen>True</AutoGen>\r
-      <DesignTime>True</DesignTime>\r
-      <DependentUpon>Strings.resx</DependentUpon>\r
-    </Compile>\r
+  </ItemGroup>\r
+  <ItemGroup Condition="'$(IsSilverLight)' != 'true'">\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalog.DirectoryCatalogDebuggerProxy.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup Condition="'$(IsSilverLight)' == 'true'">\r
+    <Compile Include="SilverlightAdditions.cs" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <EmbeddedResource Include="Strings.resx">\r
+      <SubType>Designer</SubType>\r
       <Generator>ResXFileCodeGenerator</Generator>\r
       <LastGenOutput>Strings.Designer.cs</LastGenOutput>\r
       <CustomToolNamespace>Microsoft.Internal</CustomToolNamespace>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <Folder Include="Properties\" />\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+      <ProductName>Windows Installer 3.1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
   </ItemGroup>\r
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
-       Other similar extension points exist, see Microsoft.Common.targets.\r
-  <Target Name="BeforeBuild">\r
-  </Target>\r
-  <Target Name="AfterBuild">\r
-  </Target>\r
-  -->\r
-</Project>
\ No newline at end of file
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />\r
+</Project>\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/ComponentModel/ComponentModelSL.csproj b/mcs/class/System.ComponentModel.Composition/src/ComponentModel/ComponentModelSL.csproj
new file mode 100644 (file)
index 0000000..be3fe5e
--- /dev/null
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">\r
+    <CodeAnalysisRuleSet>Migrated rules for ComponentModel.ruleset</CodeAnalysisRuleSet>\r
+    <CodeAnalysisRules />\r
+  </PropertyGroup>\r
+    <PropertyGroup>\r
+    <IsSilverlight>true</IsSilverlight>\r
+    <DefineConstants>$(DefineConstants);SILVERLIGHT</DefineConstants>\r
+    <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>\r
+    <OutputPath>..\..\bin\SL</OutputPath>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <NoWarn>1570;1572;1573;1591;1699</NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <ProductVersion>10.0.20729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{1BBA5101-D4F0-48B8-A5D6-7B23A099DCE3}</ProjectGuid>\r
+    <ProjectClrTypes>FULLCLR;SILVERLIGHT</ProjectClrTypes>\r
+    <OutputType>Library</OutputType>\r
+    <RootNamespace>Microsoft.Internal</RootNamespace>\r
+    <AssemblyName>System.ComponentModel.Composition</AssemblyName>\r
+    <DocumentationFile>$(OutputPath)\System.ComponentModel.Composition.xml</DocumentationFile>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <SignAssembly>true</SignAssembly>\r
+    <NoStdLib>true</NoStdLib>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(USE_CUSTOM_KEY)' != 'true'">\r
+    <CreateMetaAssembly>true</CreateMetaAssembly>\r
+    <CreateRefAssembly>true</CreateRefAssembly>\r
+    <PublishMetaAssemblyToSDK>true</PublishMetaAssemblyToSDK>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="mscorlib" />\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="AssemblyInfo.cs" />\r
+    <Compile Include="Microsoft\Internal\Assumes.cs" />\r
+    <Compile Include="Microsoft\Internal\AttributeServices.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\CollectionServices.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\ConditionalWeakTable.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\CollectionServices.CollectionOfObject.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\EnumerableCardinality.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionary.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\ReadOnlyDictionaryDebuggerProxy.cs" />\r
+    <Compile Include="Microsoft\Internal\Collections\WeakReferenceCollection.cs" />\r
+    <Compile Include="Microsoft\Internal\ContractServices.cs" />\r
+    <Compile Include="Microsoft\Internal\Assumes.InternalErrorException.cs" />\r
+    <Compile Include="Microsoft\Internal\SilverlightReflectionInvoke.cs" />\r
+    <Compile Include="Microsoft\Internal\GenerationServices.cs" />\r
+    <Compile Include="Microsoft\Internal\LazyServices.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.Reader.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.Writer.cs" />\r
+    <Compile Include="Microsoft\Internal\Requires.cs" />\r
+    <Compile Include="Microsoft\Internal\Runtime\Serialization\SerializationServices.cs" />\r
+    <Compile Include="Microsoft\Internal\StringComparers.cs" />\r
+    <Compile Include="Microsoft\Internal\ReflectionServices.cs" />\r
+    <Compile Include="Strings.Designer.cs">\r
+      <AutoGen>True</AutoGen>\r
+      <DesignTime>True</DesignTime>\r
+      <DependentUpon>Strings.resx</DependentUpon>\r
+      <CustomToolNamespace>Microsoft.Internal</CustomToolNamespace>\r
+    </Compile>\r
+    <Compile Include="SuppressMessages.cs" />\r
+    <Compile Include="SuppressMessagesBaselined.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AttributedModelServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedModelDiscovery.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedPartCreationInfo.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\AttributedModel\AttributedExportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTrace.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceId.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ConstraintServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionContractMismatchException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionError.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionResultOfT.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.PartCreatorExport.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionLock.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\CompositionTraceSource.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceWriter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\TraceSourceTraceWriter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Diagnostics\SilverlightTraceWriter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\InheritedExportAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportServices.DisposableLazy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AtomicComposition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AtomicCompositionExtensions.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionConstants.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.CatalogChangeProxy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\IPartCreatorImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorExportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorParameterImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\PartCreatorMemberImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\IAttributedImport.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportCardinalityMismatchException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportManyAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ErrorBuilder.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionErrorDebuggerProxy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExceptionBuilder.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportCardinalityCheckResult.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AggregateCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AggregateExportProvider.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AssemblyCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\AssemblyCatalogDebuggerProxy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.CatalogExport.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CatalogExportProvider.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ComposablePartCatalogChangeEventArgs.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ComposablePartCatalogCollection.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ComposablePartExportProvider.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionBatch.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionBatch.SingleExportComposablePart.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionContainer.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ExportProvider.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ExportProvider.GetExportOverrides.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ExportsChangeEventArgs.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.RecompositionManager.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.EngineContext.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.PartManager.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\ImportEngine.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\INotifyComposablePartCatalogChanged.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\TypeCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ICompositionError.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportingConstructorAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\IPartImportsSatisfiedNotification.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePart.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartCatalogDebuggerProxy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ComposablePartException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\CompositionElement.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\CompositionElementDebuggerProxy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\CompositionElementExtensions.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ContractBasedImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\Export.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ExportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ExportedDelegate.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ICompositionElement.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ImportCardinality.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\ImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Primitives\SerializableCompositionElement.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\DisposableReflectionComposablePart.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\IReflectionPartCreationInfo.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\LazyMemberInfo.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionImportDefinition.cs" />\r
+    <Compile Include="Microsoft\Internal\ReflectionInvoke.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionItemType.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataViewProvider.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\PartCreationPolicyAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\PartMetadataAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\PartNotDiscoverableAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionExtensions.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportingParameter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportingItem.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ExportingMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportingMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ImportType.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionComposablePart.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionComposablePartDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMemberExportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMemberImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionModelServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionParameterImportDefinition.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionWritableMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataViewGenerator.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionField.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMember.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionParameter.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionProperty.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionType.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionItem.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ReflectionModel\ReflectionMethod.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ChangeRejectedException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionException.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionErrorId.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionResult.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ContractNameServices.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CreationPolicy.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportMetadataAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ICompositionService.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ImportAttribute.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\MetadataAttributeAttribute.cs" />\r
+    <Compile Include="System\Lazy.cs" />\r
+    <Compile Include="System\LazyOfTTMetadata.cs" />\r
+    <Compile Include="System\Tuple.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup Condition="'$(IsSilverLight)' != 'true'">\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\DirectoryCatalog.DirectoryCatalogDebuggerProxy.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup Condition="'$(IsSilverLight)' == 'true'">\r
+    <Compile Include="SilverlightAdditions.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <EmbeddedResource Include="Strings.resx">\r
+      <SubType>Designer</SubType>\r
+      <Generator>ResXFileCodeGenerator</Generator>\r
+      <LastGenOutput>Strings.Designer.cs</LastGenOutput>\r
+      <CustomToolNamespace>Microsoft.Internal</CustomToolNamespace>\r
+    </EmbeddedResource>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+      <ProductName>Windows Installer 3.1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" />\r
+</Project>\r
index f70eb846ef97b90e9ab0adfc3921f9ba23f80ab0..7b1dd6f7975a95ed1ad424dc0d109b63c76e7866 100644 (file)
@@ -79,7 +79,7 @@ namespace Microsoft.Internal
         }\r
 \r
         [DebuggerStepThrough]\r
-        internal static void IsTrue(bool condition, string message)\r
+        internal static void IsTrue(bool condition, [Localizable(false)]string message)\r
         {\r
             if (!condition)\r
             {\r
@@ -88,7 +88,7 @@ namespace Microsoft.Internal
         }\r
 \r
         [DebuggerStepThrough]\r
-        internal static void Fail(string message)\r
+        internal static void Fail([Localizable(false)]string message)\r
         {\r
             throw new InternalErrorException(message);\r
         }\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/ReflectionInvoke.cs b/mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/ReflectionInvoke.cs
new file mode 100644 (file)
index 0000000..b91a0c5
--- /dev/null
@@ -0,0 +1,114 @@
+#if !SILVERLIGHT && CLR40\r
+\r
+using System;\r
+using System.Reflection;\r
+using System.Security;\r
+using System.Security.Permissions;\r
+\r
+namespace Microsoft.Internal\r
+{\r
+    internal static class ReflectionInvoke\r
+    {\r
+        private static readonly ReflectionPermission _memberAccess = new ReflectionPermission(ReflectionPermissionFlag.MemberAccess);\r
+        private static readonly ReflectionPermission _restrictedMemberAccess = new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess);\r
+\r
+        public static object SafeCreateInstance(this Type type, params object[] arguments)\r
+        {\r
+            DemandMemberAccessIfNeeded(type);\r
+\r
+            return Activator.CreateInstance(type, arguments);\r
+        }\r
+\r
+        public static object SafeInvoke(this ConstructorInfo constructor, params object[] arguments)\r
+        {\r
+            DemandMemberAccessIfNeeded(constructor);\r
+\r
+            return constructor.Invoke(arguments);\r
+        }\r
+\r
+        public static object SafeInvoke(this MethodInfo method, object instance, params object[] arguments)\r
+        {\r
+            DemandMemberAccessIfNeeded(method);\r
+\r
+            return method.Invoke(instance, arguments);\r
+        }\r
+\r
+        public static object SafeGetValue(this FieldInfo field, object instance)\r
+        {\r
+            DemandMemberAccessIfNeeded(field);\r
+\r
+            return field.GetValue(instance);\r
+        }\r
+\r
+        public static void SafeSetValue(this FieldInfo field, object instance, object value)\r
+        {\r
+            DemandMemberAccessIfNeeded(field);\r
+\r
+            field.SetValue(instance, value);\r
+        }\r
+\r
+        public static void DemandMemberAccessIfNeeded(MethodInfo method)\r
+        {\r
+            if (!method.IsVisible())\r
+            {\r
+                DemandMemberAccess(method);\r
+            }\r
+        }\r
+\r
+        private static void DemandMemberAccessIfNeeded(FieldInfo field)\r
+        {\r
+            if (!field.IsVisible())\r
+            {\r
+                DemandMemberAccess(field);\r
+            }\r
+        }\r
+\r
+        public static void DemandMemberAccessIfNeeded(Type type)\r
+        {\r
+            // Consult UnderlyingSystemType this is the type that Activator.CreateInstance creates            \r
+            if (!type.UnderlyingSystemType.IsVisible)\r
+            {\r
+                DemandMemberAccess(type);\r
+            }\r
+        }\r
+\r
+        private static void DemandMemberAccessIfNeeded(ConstructorInfo constructor)\r
+        {\r
+            if (!constructor.IsVisible())\r
+            {\r
+                DemandMemberAccess(constructor);\r
+            }\r
+        }\r
+\r
+        private static void DemandMemberAccess(MemberInfo target)\r
+        {\r
+            try\r
+            {\r
+                _memberAccess.Demand();\r
+            }\r
+            catch (SecurityException)\r
+            {   // The caller doesn't have member access, but let's see whether they have access to\r
+                // members of assemblies with less or equal permissions (this mimics Reflection's behavior)\r
+\r
+                DemandRestrictedMemberAccess(target);\r
+            }\r
+        }\r
+\r
+        private static void DemandRestrictedMemberAccess(MemberInfo target)\r
+        {\r
+            Assembly targetAssembly = target.Assembly();\r
+\r
+            PermissionSet targetGrantSet = UnsafePermissionSet(targetAssembly);\r
+            targetGrantSet.AddPermission(_restrictedMemberAccess);\r
+            targetGrantSet.Demand();\r
+        }\r
+\r
+        [SecuritySafeCritical] // PermissionSet is [SecurityCritical]\r
+        private static PermissionSet UnsafePermissionSet(Assembly assembly)\r
+        {\r
+            return assembly.PermissionSet;\r
+        }\r
+    }\r
+}\r
+\r
+#endif
\ No newline at end of file
index b027a9b9d05971c5b77b03bf95800447f042e91d..937e5bdefc3c1d128fd2bd42e96a63222fda4b9f 100644 (file)
@@ -12,6 +12,48 @@ namespace Microsoft.Internal
 {\r
     internal static class ReflectionServices\r
     {\r
+        public static Assembly Assembly(this MemberInfo member)\r
+        {\r
+            Type type = member as Type;\r
+            if (type != null)\r
+            {\r
+                return type.Assembly;\r
+            }\r
+\r
+            return member.DeclaringType.Assembly;\r
+        }\r
+\r
+        public static bool IsVisible(this ConstructorInfo constructor)\r
+        {\r
+            return constructor.DeclaringType.IsVisible && constructor.IsPublic;\r
+        }\r
+\r
+        public static bool IsVisible(this FieldInfo field)\r
+        {\r
+            return field.DeclaringType.IsVisible && field.IsPublic;\r
+        }\r
+\r
+        public static bool IsVisible(this MethodInfo method)\r
+        {\r
+            if (!method.DeclaringType.IsVisible)\r
+                return false;\r
+\r
+            if (!method.IsPublic)\r
+                return false;\r
+\r
+            if (method.IsGenericMethod)\r
+            {\r
+                // Check type arguments, for example if we're passed 'Activator.CreateInstance<SomeMefInternalType>()'\r
+                foreach (Type typeArgument in method.GetGenericArguments())\r
+                {\r
+                    if (!typeArgument.IsVisible)\r
+                        return false;\r
+                }\r
+            }\r
+\r
+            return true;\r
+        }\r
+\r
         public static string GetDisplayName(Type declaringType, string name)\r
         {\r
             Assumes.NotNull(declaringType);\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/SilverlightReflectionInvoke.cs b/mcs/class/System.ComponentModel.Composition/src/ComponentModel/Microsoft/Internal/SilverlightReflectionInvoke.cs
new file mode 100644 (file)
index 0000000..0e2e3f6
--- /dev/null
@@ -0,0 +1,43 @@
+#if SILVERLIGHT || !CLR40\r
+\r
+using System;\r
+using System.Reflection;\r
+using System.Security;\r
+using System.Security.Permissions;\r
+\r
+namespace Microsoft.Internal\r
+{\r
+    internal static class ReflectionInvoke\r
+    {\r
+        public static object SafeCreateInstance(this Type type, params object[] arguments)\r
+        {\r
+            return Activator.CreateInstance(type, arguments);\r
+        }\r
+\r
+        public static object SafeInvoke(this ConstructorInfo constructor, params object[] arguments)\r
+        {\r
+            return constructor.Invoke(arguments);\r
+        }\r
+\r
+        public static object SafeInvoke(this MethodInfo method, object instance, params object[] arguments)\r
+        {\r
+            return method.Invoke(instance, arguments);\r
+        }\r
+\r
+        public static object SafeGetValue(this FieldInfo field, object instance)\r
+        {\r
+            return field.GetValue(instance);\r
+        }\r
+\r
+        public static void SafeSetValue(this FieldInfo field, object instance, object value)\r
+        {\r
+            field.SetValue(instance, value);\r
+        }\r
+\r
+        public static void DemandMemberAccessIfNeeded(MethodInfo method)\r
+        {\r
+        }\r
+    }\r
+}\r
+\r
+#endif
\ No newline at end of file
index 3c83beec328c7de6b5c9b5981ea4d1eca98964d3..75c1cf65c0c2de6606fb63ad5a0d2b9dd8aab6df 100644 (file)
@@ -5,8 +5,7 @@ using System;
 using System.Collections;\r
 using System.Collections.Generic;\r
 using System.Diagnostics;\r
-\r
-#if SILVERLIGHT\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System\r
 {\r
@@ -17,6 +16,18 @@ namespace System
     }\r
 }\r
 \r
+namespace System.ComponentModel\r
+{\r
+    internal sealed class LocalizableAttribute : Attribute\r
+    {\r
+        [SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "isLocalizable")]\r
+        public LocalizableAttribute(bool isLocalizable)\r
+        {\r
+        }\r
+    }\r
+}\r
+\r
+#if !CLR40\r
 namespace System.Collections.Generic\r
 {\r
     internal class HashSet<T> : IEnumerable<T>\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/ComponentModel/SuppressMessages.cs b/mcs/class/System.ComponentModel.Composition/src/ComponentModel/SuppressMessages.cs
new file mode 100644 (file)
index 0000000..dbe413b
--- /dev/null
@@ -0,0 +1,10 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Diagnostics.CodeAnalysis;\r
+\r
+[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "System.ComponentModel.Composition.ReflectionModel")]\r
+[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "System")]\r
+[assembly: SuppressMessage("Microsoft.MSInternal", "CA905:SystemNamespacesRequireApproval", Scope = "namespace", Target = "System.ComponentModel.Composition.ReflectionModel", Justification = "Approved by Framework")]\r
+\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/ComponentModel/SuppressMessagesBaselined.cs b/mcs/class/System.ComponentModel.Composition/src/ComponentModel/SuppressMessagesBaselined.cs
new file mode 100644 (file)
index 0000000..b2f62f7
--- /dev/null
@@ -0,0 +1,659 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Diagnostics.CodeAnalysis;\r
+\r
+// The following are untriaged violations, do not add to this list unless you hit a bug in Code Analysis. Any explicitly \r
+// suppressed violations should either be applied against the member or type itself, or if raised against a namespace, \r
+// resource or assembly, placed in SuppressMessages.cs.\r
+\r
+// Code Analysis Bug: ValidateArgumentsOfPublicMethods should not fire on protected members\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateExportProvider.#GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+\r
+// Code Analysis Bug: ValidateArgumentsOfPublicMethods should not fire on usage of Requires.NotNull\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#AddExportedValue`1(System.ComponentModel.Composition.Hosting.CompositionBatch,System.String,!!0)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#AddPart(System.ComponentModel.Composition.Hosting.CompositionBatch,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#ComposeExportedValue`1(System.ComponentModel.Composition.Hosting.CompositionContainer,System.String,!!0)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#ComposeExportedValue`1(System.ComponentModel.Composition.Hosting.CompositionContainer,!!0)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#ComposeParts(System.ComponentModel.Composition.Hosting.CompositionContainer,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#SatisfyImportsOnce(System.ComponentModel.Composition.ICompositionService,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider+CatalogChangeProxy.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#SourceProvider")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartCatalog.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExports(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.Export>)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExports`2(System.Collections.Generic.IEnumerable`1<System.Lazy`2<!!0,!!1>>)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExports`1(System.Collections.Generic.IEnumerable`1<System.Lazy`1<!!0>>)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.CompositionError.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.CompositionError.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#IsConstraintSatisfiedBy(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#OnExportsChanged(System.ComponentModel.Composition.Hosting.ExportsChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#OnExportsChanging(System.ComponentModel.Composition.Hosting.ExportsChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#.ctor(System.ComponentModel.Composition.Hosting.ExportProvider,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#.ctor(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetExportingMember(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetImportingMember(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetImportingParameter(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetPartType(System.ComponentModel.Composition.Primitives.ComposablePartDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#IsDisposalRequired(System.ComponentModel.Composition.Primitives.ComposablePartDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#IsImportingParameter(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+\r
+// DevDiv 10: 583413 AsmMeta: No longer finds APTCA bit on assemblies \r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.Lazy`2", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.AttributedModelServices", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ChangeRejectedException", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.CompositionContractMismatchException", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.CompositionError", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.CompositionException", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.CreationPolicy", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ExportAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ExportMetadataAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ImportAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ImportCardinalityMismatchException", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ImportingConstructorAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ImportManyAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.InheritedExportAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.MetadataAttributeAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.PartCreationPolicyAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.PartMetadataAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.PartNotDiscoverableAttribute", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.AdaptingExportProvider", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.AggregateCatalog", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.AggregateExportProvider", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.AssemblyCatalog", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider",                        Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.CompositionBatch", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.CompositionConstants", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ExportedDelegate", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.ExportProvider", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.ExportsChangeEventArgs", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.ImportEngine", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.Export", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ExportDefinition", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ComposablePart", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ComposablePartCatalog", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ComposablePartDefinition", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ComposablePartException", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ImportCardinality", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.Primitives.ImportDefinition", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Scope = "type", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices", Justification = "Razzle mscorlib is not APTCA")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateCatalog.#.ctor(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartCatalog>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateCatalog.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateCatalog.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateExportProvider.#.ctor(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Hosting.ExportProvider>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateExportProvider.#.ctor(System.ComponentModel.Composition.Hosting.ExportProvider[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateExportProvider.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateExportProvider.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AggregateExportProvider.#GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AssemblyCatalog.#.ctor(System.Reflection.Assembly,System.ComponentModel.Composition.Primitives.ICompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AssemblyCatalog.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AssemblyCatalog.#GetDisplayName()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AssemblyCatalog.#InnerCatalog")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AssemblyCatalog.#LoadAssembly(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AssemblyCatalogDebuggerProxy.#.ctor(System.ComponentModel.Composition.Hosting.AssemblyCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Assumes+InternalErrorException.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Assumes+InternalErrorException.#.ctor(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Assumes.#NotNullOrEmpty(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#AddCompleteAction(System.Action)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#AddRevertAction(System.Action)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#.ctor(System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#ContainsInnerAtomicComposition")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#CopyComplete()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#FinalComplete()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#SetValueInternal(System.Object,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#ThrowIfCompleteed()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#ThrowIfContainsInnerAtomicComposition()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicComposition.#TryGetValueInternal`1(System.Object,System.Boolean,!!0&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicCompositionExtensions.#AddCompleteActionAllowNull(System.ComponentModel.Composition.Hosting.AtomicComposition,System.Action)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.AtomicCompositionExtensions.#AddRevertActionAllowNull(System.ComponentModel.Composition.Hosting.AtomicComposition,System.Action)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedExportDefinition.#Metadata")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedModelDiscovery.#CreatePart(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedModelDiscovery.#GetImportDefinitionCreationInfo(System.ComponentModel.Composition.ReflectionModel.ReflectionItem,System.Reflection.ICustomAttributeProvider)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#AddExportedValue`1(System.ComponentModel.Composition.Hosting.CompositionBatch,System.String,!!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#AddExportedValue`1(System.ComponentModel.Composition.Hosting.CompositionBatch,!!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModelServices.#ComposeParts(System.ComponentModel.Composition.Hosting.CompositionContainer,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#.ctor(System.Type,System.ComponentModel.Composition.PartCreationPolicyAttribute,System.Boolean,System.ComponentModel.Composition.Primitives.ICompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#GetConstructor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#GetExportDefinitions()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#GetImportDefinitions()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#GetLazyPartType()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#HasExports()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#IsDisposalRequired")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#IsPartDiscoverable()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.AttributedModel.AttributedPartCreationInfo.#SelectPartConstructor(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.AttributeServices.#GetAttributes`1(System.Reflection.ICustomAttributeProvider)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.AttributeServices.#GetAttributes`1(System.Reflection.ICustomAttributeProvider,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.AttributeServices.#GetFirstAttribute`1(System.Reflection.ICustomAttributeProvider)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.AttributeServices.#GetFirstAttribute`1(System.Reflection.ICustomAttributeProvider,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.AttributeServices.#IsAttributeDefined`1(System.Reflection.ICustomAttributeProvider)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.AttributeServices.#IsAttributeDefined`1(System.Reflection.ICustomAttributeProvider,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider+CatalogChangeProxy.#.ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider+CatalogChangeProxy.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider+CatalogChangeProxy.#Parts")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#.ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#DetermineRejection(System.ComponentModel.Composition.Primitives.ComposablePartDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#EnsureCanRun()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#EnsureCanSet`1(!!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#EnsureRunning()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#GetAtomicCompositionQuery(System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#GetComposablePart(System.ComponentModel.Composition.Primitives.ComposablePartDefinition,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#GetSharedPart(System.ComponentModel.Composition.Primitives.ComposablePartDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#IsRejected(System.ComponentModel.Composition.Primitives.ComposablePartDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#OnCatalogChanging(System.Object,System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#OnExportsChangingInternal(System.Object,System.ComponentModel.Composition.Hosting.ExportsChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#ReleasePart(System.Object,System.ComponentModel.Composition.Primitives.ComposablePart,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#SetConditionalReferenceForRecomposablePart(System.Object,System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#SourceProvider")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#UpdateAtomicCompositionQuery(System.ComponentModel.Composition.Hosting.AtomicComposition,System.Func`2<System.ComponentModel.Composition.Primitives.ComposablePartDefinition,System.Boolean>,System.ComponentModel.Composition.Hosting.CatalogExportProvider+AtomicCompositionQueryState)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CatalogExportProvider.#UpdateRejections(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ChangeRejectedException.#Message")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#AsArray`1(System.Collections.Generic.IEnumerable`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObject`1.#Add(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObject`1.#Clear()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObject`1.#.ctor(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObject`1.#IsReadOnly")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObjectList.#Add(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObjectList.#Clear()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObjectList.#.ctor(System.Collections.IList)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices+CollectionOfObjectList.#IsReadOnly")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#ConcatAllowingNull`1(System.Collections.Generic.IEnumerable`1<!!0>,System.Collections.Generic.IEnumerable`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#Copy`1(System.Collections.Generic.Stack`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#FastAny`1(System.Collections.Generic.IEnumerable`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#ForEach`1(System.Collections.Generic.IEnumerable`1<!!0>,System.Action`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#GetCardinality`1(System.Collections.Generic.IEnumerable`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#GetCollectionElementType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#GetCollectionWrapper(System.Type,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#GetEnumerableElementType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#ToReadOnlyCollection`1(System.Collections.Generic.IEnumerable`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.CollectionServices.#WhereNotNull`1(System.Collections.Generic.IEnumerable`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePart.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartCatalog.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartCatalog.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartCatalog.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs.#.ctor(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Add(System.ComponentModel.Composition.Primitives.ComposablePartCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Changed")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Changing")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Clear()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#.ctor(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartCatalog>,System.Action`1<System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs>,System.Action`1<System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Contains(System.ComponentModel.Composition.Primitives.ComposablePartCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#CopyTo(System.ComponentModel.Composition.Primitives.ComposablePartCatalog[],System.Int32)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Count")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#GetEnumerator()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#HasChanged")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#OnChanged(System.Object,System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#OnChanging(System.Object,System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#OnContainedCatalogChanged(System.Object,System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#OnContainedCatalogChanging(System.Object,System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#RaiseChangedEvent(System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>>,System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#RaiseChangingEvent(System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>>,System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartDefinition>>,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#Remove(System.ComponentModel.Composition.Primitives.ComposablePartCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#SubscribeToCatalogNotifications(System.ComponentModel.Composition.Primitives.ComposablePartCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#SubscribeToCatalogNotifications(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartCatalog>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#UnsubscribeFromCatalogNotifications(System.ComponentModel.Composition.Primitives.ComposablePartCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartCatalogCollection.#UnsubscribeFromCatalogNotifications(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePartCatalog>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartCatalogDebuggerProxy.#.ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartDefinition.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartException.#.ctor(System.ComponentModel.Composition.CompositionErrorId,System.String,System.ComponentModel.Composition.Primitives.ICompositionElement,System.Exception)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartException.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ComposablePartException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#.ctor(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#CreateExport(System.ComponentModel.Composition.Primitives.ComposablePart,System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#EnsureCanRun()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#EnsureCanSet`1(!!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#EnsureRunning()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#GetUpdatedPartsList(System.ComponentModel.Composition.Hosting.CompositionBatch)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#Recompose(System.ComponentModel.Composition.Hosting.CompositionBatch,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#SourceProvider")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.#ThrowIfDisposed()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionBatch.#AddPart(System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionBatch.#.ctor(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePart>,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ComposablePart>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionBatch.#PartsToAdd")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionBatch.#PartsToRemove")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionBatch.#RemovePart(System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionBatch+SingleExportComposablePart.#ImportDefinitions")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#.ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,System.Boolean,System.ComponentModel.Composition.Hosting.ExportProvider[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExport(System.ComponentModel.Composition.Primitives.Export)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExport`1(System.Lazy`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExports(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.Export>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExports`2(System.Collections.Generic.IEnumerable`1<System.Lazy`2<!!0,!!1>>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionContainer.#ReleaseExports`1(System.Collections.Generic.IEnumerable`1<System.Lazy`1<!!0>>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionContractMismatchException.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionContractMismatchException.#.ctor(System.String,System.Exception)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.CompositionElement.#.ctor(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.CompositionElementDebuggerProxy.#.ctor(System.ComponentModel.Composition.Primitives.CompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.CompositionElementExtensions.#GetDisplayNameCore(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionError.#.ctor(System.ComponentModel.Composition.CompositionErrorId,System.String,System.ComponentModel.Composition.Primitives.ICompositionElement,System.Exception)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionError.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionError.#Create(System.ComponentModel.Composition.CompositionErrorId,System.ComponentModel.Composition.Primitives.ICompositionElement,System.Exception,System.String,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionError.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionErrorDebuggerProxy.#.ctor(System.ComponentModel.Composition.CompositionError)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#BuildDefaultMessage()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#CalculatePaths(System.ComponentModel.Composition.CompositionException)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#.ctor(System.String,System.Exception,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.CompositionError>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#Message")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#VisitCompositionException(System.ComponentModel.Composition.CompositionException,System.ComponentModel.Composition.CompositionException+VisitContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#VisitError(System.ComponentModel.Composition.CompositionError,System.ComponentModel.Composition.CompositionException+VisitContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#VisitException(System.Exception,System.ComponentModel.Composition.CompositionException+VisitContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#WriteElementGraph(System.Text.StringBuilder,System.ComponentModel.Composition.Primitives.ICompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#WriteError(System.Text.StringBuilder,System.ComponentModel.Composition.CompositionError)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#WriteHeader(System.Text.StringBuilder,System.Int32,System.Int32)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#WritePath(System.Text.StringBuilder,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.CompositionError>,System.Int32)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException.#WritePaths(System.Text.StringBuilder,System.Collections.Generic.IEnumerable`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.CompositionError>>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock.#.ctor(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock+CompositionLockHolder.#.ctor(System.ComponentModel.Composition.Hosting.CompositionLock)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock+CompositionLockHolder.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock+EmptyLockHolder.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock.#EnterCompositionLock()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionLock.#ExitCompositionLock()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionResult.#Errors")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionResult`1.#Errors")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetContractNameFromExport(System.Reflection.MemberInfo,System.ComponentModel.Composition.ExportAttribute)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetContractNameFromImport(System.ComponentModel.Composition.IAttributedImport,System.ComponentModel.Composition.ReflectionModel.ImportType)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetContractTypeFromImport(System.ComponentModel.Composition.IAttributedImport,System.ComponentModel.Composition.ReflectionModel.ImportType)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetDefaultTypeFromMember(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetPartMetadataForType(System.Type,System.ComponentModel.Composition.CreationPolicy)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetRequiredMetadata(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetTypeIdentityFromExport(System.Reflection.MemberInfo,System.ComponentModel.Composition.ExportAttribute)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#GetTypeIdentityFromImport(System.ComponentModel.Composition.IAttributedImport,System.ComponentModel.Composition.ReflectionModel.ImportType)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#IsRecomposable(System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#IsValidAttributeType(System.Type,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices+MetadataList.#Add(System.Object,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices+MetadataList.#InferArrayType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices+MetadataList.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices+MetadataList.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices+MetadataList.#ToArray()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#TryContributeMetadataValue(System.Collections.Generic.IDictionary`2<System.String,System.Object>,System.String,System.Object,System.Type,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#TryExportMetadataForMember(System.Reflection.MemberInfo,System.Collections.Generic.IDictionary`2<System.String,System.Object>&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#TryFire`1(System.EventHandler`1<!!0>,System.Object,!!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#TryInvoke(System.Action)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.CompositionServices.#TryInvoke`1(System.Func`1<!!0>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.CompositionTrace.#AssemblyLoadFailed(System.ComponentModel.Composition.Hosting.DirectoryCatalog,System.String,System.Exception)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.CompositionTrace.#PartDefinitionRejected(System.ComponentModel.Composition.Primitives.ComposablePartDefinition,System.ComponentModel.Composition.ChangeRejectedException)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#AndAlso`1(System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>,System.Linq.Expressions.Expression`1<System.Func`2<!!0,System.Boolean>>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateConstraint(System.Collections.Generic.IEnumerable`1<System.Collections.Generic.KeyValuePair`2<System.String,System.Type>>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateConstraint(System.String,System.String,System.Collections.Generic.IEnumerable`1<System.Collections.Generic.KeyValuePair`2<System.String,System.Type>>,System.ComponentModel.Composition.CreationPolicy)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateContractConstraintBody(System.String,System.Linq.Expressions.ParameterExpression)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateCreationPolicyContraint(System.ComponentModel.Composition.CreationPolicy,System.Linq.Expressions.ParameterExpression)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateMetadataConstraintBody(System.Collections.Generic.IEnumerable`1<System.Collections.Generic.KeyValuePair`2<System.String,System.Type>>,System.Linq.Expressions.ParameterExpression)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateMetadataContainsKeyExpression(System.Linq.Expressions.ParameterExpression,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateMetadataOfTypeExpression(System.Linq.Expressions.ParameterExpression,System.String,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateMetadataValueEqualsExpression(System.Linq.Expressions.ParameterExpression,System.Object,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ConstraintServices.#CreateTypeIdentityContraint(System.String,System.Linq.Expressions.ParameterExpression)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#.ctor(System.String,System.String,System.Collections.Generic.IEnumerable`1<System.Collections.Generic.KeyValuePair`2<System.String,System.Type>>,System.ComponentModel.Composition.Primitives.ImportCardinality,System.Boolean,System.Boolean,System.ComponentModel.Composition.CreationPolicy)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#IsConstraintSatisfiedBy(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#MatchRequiredMatadata(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#FindArrayElementType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#FindGenericTypeName(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#GetGenericArity(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#GetTypeIdentity(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#GetTypeIdentityFromMethod(System.Reflection.MethodInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#TypeIdentityCache")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteArrayType(System.Text.StringBuilder,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteArrayTypeDimensions(System.Text.StringBuilder,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteByRefType(System.Text.StringBuilder,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteCustomModifiers(System.Text.StringBuilder,System.String,System.Type[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteGenericType(System.Text.StringBuilder,System.Type,System.Boolean,System.Collections.Generic.Queue`1<System.Type>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteGenericTypeName(System.Text.StringBuilder,System.Type,System.Boolean,System.Collections.Generic.Queue`1<System.Type>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteNonGenericType(System.Text.StringBuilder,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WritePointerType(System.Text.StringBuilder,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteType(System.Text.StringBuilder,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteTypeArgumentsString(System.Text.StringBuilder,System.Int32,System.Boolean,System.Collections.Generic.Queue`1<System.Type>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ContractNameServices.#WriteTypeWithNamespace(System.Text.StringBuilder,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ContractServices.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ContractServices.#TryCast(System.Type,System.Object,System.Object&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#Changed")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#Changing")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#DiffChanges(System.String[],System.String[],System.Collections.Generic.List`1<System.Tuple`2<System.String,System.ComponentModel.Composition.Hosting.AssemblyCatalog>>&,System.Collections.Generic.List`1<System.Tuple`2<System.String,System.ComponentModel.Composition.Hosting.AssemblyCatalog>>&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog+DirectoryCatalogDebuggerProxy.#Assemblies")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog+DirectoryCatalogDebuggerProxy.#.ctor(System.ComponentModel.Composition.Hosting.DirectoryCatalog)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#GetDisplayName()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#GetFiles()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#GetFullPath(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#Initialize(System.String,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#LoadedFiles")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#OnChanged(System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#OnChanging(System.ComponentModel.Composition.Hosting.ComposablePartCatalogChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.DirectoryCatalog.#Refresh()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.DisposableReflectionComposablePart.#System.IDisposable.Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.DisposableReflectionComposablePart.#ReleaseInstanceIfNecessary(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ErrorBuilder.#CreateImportCardinalityMismatch(System.ComponentModel.Composition.ImportCardinalityMismatchException,System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExceptionBuilder.#CreateContainsNullElement(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExceptionBuilder.#CreateDiscoveryException(System.String,System.String[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExceptionBuilder.#CreateExportDefinitionNotOnThisComposablePart(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExceptionBuilder.#CreateImportDefinitionNotOnThisComposablePart(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExceptionBuilder.#CreateNotOverriddenByDerived(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExceptionBuilder.#CreateObjectDisposed(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExceptionBuilder.#Format(System.String,System.String[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.Export.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.Export.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.Export.#.ctor(System.ComponentModel.Composition.Primitives.ExportDefinition,System.Func`1<System.Object>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.Export.#GetExportedValueCore()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.Export.#Value")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportAttribute.#.ctor(System.String,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ExportDefinition.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ExportDefinition.#.ctor(System.String,System.Collections.Generic.IDictionary`2<System.String,System.Object>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ExportedDelegate.#ConvertMethodInfoToFuncOrActionType(System.Reflection.MethodInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ExportedDelegate.#CreateDelegate(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ExportedDelegate.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ExportedDelegate.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ExportedDelegate.#.ctor(System.Object,System.Reflection.MethodInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ExportingMember.#EnsureReadable()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ExportingMember.#.ctor(System.ComponentModel.Composition.Primitives.ExportDefinition,System.ComponentModel.Composition.ReflectionModel.ReflectionMember)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ExportingMember.#GetExportedValue(System.Object,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportMetadataAttribute.#.ctor(System.String,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#BuildImportDefinition(System.Type,System.Type,System.String,System.ComponentModel.Composition.Primitives.ImportCardinality)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#ExportsChanged")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#ExportsChanging")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExportCore`2(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExportCore`1(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExportedValueCore`1(System.String,System.ComponentModel.Composition.Primitives.ImportCardinality)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExportedValuesCore`1(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExports(System.Type,System.Type,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExportsCore(System.Type,System.Type,System.String,System.ComponentModel.Composition.Primitives.ImportCardinality)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExportsCore`2(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#GetExportsCore`1(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportProvider.#TryGetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.Export>&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportsChangeEventArgs.#ChangedContractNames")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ExportsChangeEventArgs.#.ctor(System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#CreateSemiStronglyTypedExport`2(System.ComponentModel.Composition.Primitives.Export)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#CreateSemiStronglyTypedExportFactory(System.Type,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#CreateStronglyTypedExportFactory(System.Type,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#CreateStronglyTypedExportOfT`1(System.ComponentModel.Composition.Primitives.Export)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#CreateStronglyTypedExportOfTM`2(System.ComponentModel.Composition.Primitives.Export)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices+DisposableLazy`2.#System.IDisposable.Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices+DisposableLazy`1.#.ctor(System.Func`1<!0>,System.IDisposable)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices+DisposableLazy`1.#System.IDisposable.Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#GetExportedValueFromLazy`1(System.ComponentModel.Composition.Primitives.Export)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#IsDefaultMetadataViewType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ExportServices.#IsDictionaryConstructorViewType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#AddItemToLocalDictionary(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Object,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#AddLocalToLocalDictionary(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Object,System.Reflection.Emit.LocalBuilder)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#CreateGeneratorForPublicConstructor(System.Reflection.Emit.TypeBuilder,System.Type[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#GetExceptionDataAndStoreInLocal(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.LocalBuilder)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#IsBoxingRequiredForValue(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadDouble(System.Reflection.Emit.ILGenerator,System.Double)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadEnumerable(System.Reflection.Emit.ILGenerator,System.Collections.IEnumerable)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadFloat(System.Reflection.Emit.ILGenerator,System.Single)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadInt(System.Reflection.Emit.ILGenerator,System.Int32)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadLong(System.Reflection.Emit.ILGenerator,System.Int64)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadNull(System.Reflection.Emit.ILGenerator)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadString(System.Reflection.Emit.ILGenerator,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadTypeOf(System.Reflection.Emit.ILGenerator,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.GenerationServices.#LoadValue(System.Reflection.Emit.ILGenerator,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ImportAttribute.#.ctor(System.String,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ImportCardinalityMismatchException.#.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ImportCardinalityMismatchException.#.ctor(System.String,System.Exception)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ImportDefinition.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ImportDefinition.#.ctor(System.String,System.ComponentModel.Composition.Primitives.ImportCardinality,System.Boolean,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ImportDefinition.#IsConstraintSatisfiedBy(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ImportDefinition.#ToString()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#Dispose(System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+EngineContext.#AddPartManager(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+EngineContext.#Complete()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+EngineContext.#.ctor(System.ComponentModel.Composition.Hosting.ImportEngine,System.ComponentModel.Composition.Hosting.ImportEngine+EngineContext)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+EngineContext.#RemovePartManager(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#GetEngineContext(System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#GetPartManager(System.ComponentModel.Composition.Primitives.ComposablePart,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#.ctor(System.ComponentModel.Composition.Hosting.ExportProvider,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#InPrerequisiteLoop()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#OnExportsChanging(System.Object,System.ComponentModel.Composition.Hosting.ExportsChangeEventArgs)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+PartManager.#DisposeAllDependencies()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+PartManager.#GetImportedContractNames()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+PartManager.#GetSavedImport(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+PartManager.#.ctor(System.ComponentModel.Composition.Hosting.ImportEngine,System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+PartManager.#SetSavedImport(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Primitives.Export[],System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+PartManager.#State")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+PartManager.#UpdateDisposableDependencies(System.ComponentModel.Composition.Primitives.ImportDefinition,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.Export>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#PreviewImports(System.ComponentModel.Composition.Primitives.ComposablePart,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#AddIndexEntries(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#GetAffectedImports(System.ComponentModel.Composition.Primitives.ComposablePart,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#GetAffectedParts(System.Collections.Generic.IEnumerable`1<System.String>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#GetPartsImporting(System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#IsAffectedImport(System.ComponentModel.Composition.Primitives.ImportDefinition,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#RemoveIndexEntries(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager.#UpdateImportIndex()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#ReleaseImports(System.ComponentModel.Composition.Primitives.ComposablePart,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#SatisfyImports(System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#SatisfyImportsOnce(System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#StopSatisfyingImports(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#TryPreviewImportsStateMachine(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.ComponentModel.Composition.Primitives.ComposablePart,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#TryRecomposeImport(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.Boolean,System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#TryRecomposeImports(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#TrySatisfyImports(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.ComponentModel.Composition.Primitives.ComposablePart,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#TrySatisfyImportsStateMachine(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.ComponentModel.Composition.Primitives.ComposablePart)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.ImportEngine.#TrySatisfyImportSubset(System.ComponentModel.Composition.Hosting.ImportEngine+PartManager,System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ImportDefinition>,System.ComponentModel.Composition.Hosting.AtomicComposition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ImportingConstructorAttribute.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingItem.#Cast(System.Type,System.ComponentModel.Composition.Primitives.Export)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingItem.#CastExportsToCollectionImportType(System.ComponentModel.Composition.Primitives.Export[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingItem.#.ctor(System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition,System.ComponentModel.Composition.ReflectionModel.ImportType)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingMember.#EnsureCollectionIsWritable(System.Collections.Generic.ICollection`1<System.Object>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingMember.#EnsureWritable()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingMember.#GetNormalizedCollection(System.Type,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingMember.#PopulateCollection(System.Collections.Generic.ICollection`1<System.Object>,System.Collections.IEnumerable)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingMember.#SetCollectionMemberValue(System.Object,System.Collections.IEnumerable)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportingMember.#SetSingleMemberValue(System.Object,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ImportManyAttribute.#.ctor(System.String,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportType.#CreateLazyType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportType.#GetStronglyTypedExport(System.ComponentModel.Composition.Primitives.Export)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportType.#.ctor(System.Type,System.ComponentModel.Composition.Primitives.ImportCardinality)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportType.#IsTypeAssignableCollectionType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ImportType+SpecificLazyType.#.ctor(System.Type,System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Lazy`2.#.ctor(System.Func`1<!0>,!1)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Lazy`2.#.ctor(System.Func`1<!0>,!1,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Lazy`2.#.ctor(!1)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.Lazy`2.#.ctor(!1,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#AreAccessorsValid(System.Reflection.MemberTypes,System.Reflection.MemberInfo[],System.String&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#Equals(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#GetAccessors()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#GetHashCode()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#.ctor(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#.ctor(System.Reflection.MemberTypes,System.Reflection.MemberInfo[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#op_Inequality(System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo,System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo.#op_Equality(System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo,System.ComponentModel.Composition.ReflectionModel.LazyMemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.LazyServices.#AsLazy`1(!!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.LazyServices.#GetNotNullValue`1(System.Lazy`1<!!0>,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Lock.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Lock.#EnterReadLock()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Lock.#EnterWriteLock()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Lock.#ExitReadLock()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Lock.#ExitWriteLock()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Lock.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataAttributeAttribute.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataServices.#GetValue`1(System.Collections.Generic.IDictionary`2<System.String,System.Object>,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewGenerator.#GenerateFieldAssignmentFromLocalValue(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Reflection.Emit.FieldBuilder)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewGenerator.#GenerateInterfaceViewProxyType(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewGenerator.#GenerateLocalAssignmentFromDefaultAttribute(System.Reflection.Emit.ILGenerator,System.ComponentModel.DefaultValueAttribute[],System.Reflection.Emit.LocalBuilder)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewGenerator.#GenerateLocalAssignmentFromFlag(System.Reflection.Emit.ILGenerator,System.Reflection.Emit.LocalBuilder,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewGenerator.#GenerateView(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewGenerator.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewProvider.#GetMetadataView`1(System.Collections.Generic.IDictionary`2<System.String,System.Object>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.MetadataViewProvider.#IsViewTypeValid(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.PartCreationPolicyAttribute.#.ctor(System.ComponentModel.Composition.CreationPolicy)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.PartMetadataAttribute.#.ctor(System.String,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.PartNotDiscoverableAttribute.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReadLock.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#Contains(System.Collections.Generic.KeyValuePair`2<!0,!1>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#ContainsKey(!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#CopyTo(System.Collections.Generic.KeyValuePair`2<!0,!1>[],System.Int32)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#Count")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#GetEnumerator()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#System.Collections.Generic.ICollection`1<System.Collections.Generic.KeyValuePair`2<!0,!1>>.Add(System.Collections.Generic.KeyValuePair`2<!0,!1>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#System.Collections.Generic.ICollection`1<System.Collections.Generic.KeyValuePair`2<!0,!1>>.Clear()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#System.Collections.Generic.ICollection`1<System.Collections.Generic.KeyValuePair`2<!0,!1>>.Remove(System.Collections.Generic.KeyValuePair`2<!0,!1>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#System.Collections.Generic.IDictionary`2<!0,!1>.Add(!0,!1)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#System.Collections.Generic.IDictionary`2<!0,!1>.Remove(!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#System.Collections.IEnumerable.GetEnumerator()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#Keys")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#.ctor(System.Collections.Generic.IDictionary`2<!0,!1>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#Item[!0]")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#TryGetValue(!0,!1&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionary`2.#Values")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionaryDebuggerProxy`2.#Items")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.ReadOnlyDictionaryDebuggerProxy`2.#.ctor(Microsoft.Internal.Collections.ReadOnlyDictionary`2<!0,!1>)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#Activate()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#CachedInstance")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#CreateInstance(System.Reflection.ConstructorInfo,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#EnsureCardinality(System.ComponentModel.Composition.Primitives.ImportDefinition,System.ComponentModel.Composition.Primitives.Export[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#EnsureGettable()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#EnsureSettable(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#GetConstructorArguments()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#GetExportedValue(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#GetExportingMemberFromDefinition(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#GetImportingItemFromDefinition(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#GetInstanceActivatingIfNeeded()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#NotifyImportSatisfied()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#.ctor(System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePartDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#.ctor(System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePartDefinition,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#RequiresActivation()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#SetImport(System.ComponentModel.Composition.ReflectionModel.ImportingItem,System.ComponentModel.Composition.Primitives.Export[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#SetNonPrerequisiteImports()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#TryGetImportValue(System.ComponentModel.Composition.Primitives.ImportDefinition,System.Object&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.#UseImportedValues`1(System.Collections.Generic.IEnumerable`1<!!0>,System.Action`3<System.ComponentModel.Composition.ReflectionModel.ImportingItem,!!0,System.Object>,System.Boolean)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePartDefinition.#ExportDefinitions")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePartDefinition.#GetConstructor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePartDefinition.#ImportDefinitions")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePartDefinition.#Metadata")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePartDefinition.#.ctor(System.ComponentModel.Composition.ReflectionModel.IReflectionPartCreationInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionExtensions.#CreateReflectionProperty(System.Reflection.MethodInfo,System.Reflection.MethodInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionExtensions.#ToLazyMember(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionExtensions.#ToLazyMember(System.ComponentModel.Composition.ReflectionModel.ReflectionMember)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionExtensions.#ToReflectionProperty(System.Reflection.PropertyInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionExtensions.#ToReflectionWritableMember(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionField.#CanWrite")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionField.#GetValue(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionField.#RequiresInstance")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionField.#ReturnType")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionField.#SetValue(System.Object,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionItem.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionMember.#DeclaringType")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionMember.#Name")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionMemberExportDefinition.#GetDisplayName()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionMemberImportDefinition.#GetDisplayName()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionMethod.#RequiresInstance")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionMethod.#ReturnType")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetExportingMember(System.ComponentModel.Composition.Primitives.ExportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetImportingMember(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetImportingParameter(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#GetPartType(System.ComponentModel.Composition.Primitives.ComposablePartDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#IsDisposalRequired(System.ComponentModel.Composition.Primitives.ComposablePartDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices.#IsImportingParameter(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices+LazyExportDefinition.#Metadata")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices+ReflectionPartCreationInfo.#GetConstructor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices+ReflectionPartCreationInfo.#GetMetadata()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionModelServices+ReflectionPartCreationInfo.#.ctor(System.Lazy`1<System.Type>,System.Boolean,System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ImportDefinition>>,System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>>,System.Lazy`1<System.Collections.Generic.IDictionary`2<System.String,System.Object>>,System.ComponentModel.Composition.Primitives.ICompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionParameter.#GetDisplayName()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionParameter.#Name")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionParameter.#ReturnType")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionParameterImportDefinition.#GetDisplayName()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionParameterImportDefinition.#ToImportingItem()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#CanRead")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#CanWrite")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#GetValue(System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#Name")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#.ctor(System.Reflection.MethodInfo,System.Reflection.MethodInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#RequiresInstance")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#ReturnType")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionProperty.#SetValue(System.Object,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#GetAllProperties(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#GetDisplayName(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#GetDisplayName(System.Type,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#TryGetGenericInterfaceType(System.Type,System.Type,System.Type&)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Requires.#IsInMembertypeSet(System.Reflection.MemberTypes,System.String,System.Reflection.MemberTypes)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Requires.#NotNull`1(!!0,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Requires.#NotNullElements`1(System.Collections.Generic.IEnumerable`1<!!0>,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Requires.#NotNullElements`2(System.Collections.Generic.IEnumerable`1<System.Collections.Generic.KeyValuePair`2<!!0,!!1>>,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Requires.#NotNullOrEmpty(System.String,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.SerializableCompositionElement.#.ctor(System.String,System.ComponentModel.Composition.Primitives.ICompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Runtime.Serialization.SerializationServices.#GetValue`1(System.Runtime.Serialization.SerializationInfo,System.String)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.StringComparers.#ContractName")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.StringComparers.#MetadataKeyNames")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.TraceSourceTraceWriter.#CanWriteError")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.TraceSourceTraceWriter.#CanWriteInformation")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.TraceSourceTraceWriter.#CanWriteWarning")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.TraceSourceTraceWriter.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.TraceSourceTraceWriter.#WriteEvent(System.Diagnostics.TraceEventType,System.ComponentModel.Composition.Diagnostics.CompositionTraceId,System.String,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Diagnostics.TraceWriter.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#CreateIndex()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#GetCandidateParts(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#GetDisplayName()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#GetTypesDisplay()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#PartsInternal")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Hosting.TypeCatalog.#.ctor(System.Collections.Generic.IEnumerable`1<System.Type>,System.ComponentModel.Composition.Primitives.ICompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.WeakReferenceCollection`1.#Add(!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.WeakReferenceCollection`1.#AliveItemsToList()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.WeakReferenceCollection`1.#CleanupDeadReferences()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.WeakReferenceCollection`1.#Clear()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.WeakReferenceCollection`1.#IndexOf(!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.WeakReferenceCollection`1.#Remove(!0)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.Collections.WeakReferenceCollection`1.#.ctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.WriteLock.#Dispose()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.Primitives.ContractBasedImportDefinition.#ValidateRequiredMetadata()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.LazyExportDefinition.#Metadata")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#DemandMemberAccess(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#DemandMemberAccessIfNeeded(System.Type)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#DemandRestrictedMemberAccess(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#.cctor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#SafeCreateInstance(System.Type,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#SafeGetValue(System.Reflection.FieldInfo,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#SafeInvoke(System.Reflection.ConstructorInfo,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#SafeInvoke(System.Reflection.MethodInfo,System.Object,System.Object[])")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#SafeSetValue(System.Reflection.FieldInfo,System.Object,System.Object)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionInvoke.#UnsafePermissionSet(System.Reflection.Assembly)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionPartCreationInfo.#GetConstructor()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionPartCreationInfo.#GetMetadata()")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.ReflectionModel.ReflectionPartCreationInfo.#.ctor(System.Lazy`1<System.Type>,System.Boolean,System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ImportDefinition>>,System.Lazy`1<System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ExportDefinition>>,System.Lazy`1<System.Collections.Generic.IDictionary`2<System.String,System.Object>>,System.ComponentModel.Composition.Primitives.ICompositionElement)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#Assembly(System.Reflection.MemberInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#IsVisible(System.Reflection.ConstructorInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#IsVisible(System.Reflection.FieldInfo)")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "Microsoft.Internal.ReflectionServices.#IsVisible(System.Reflection.MethodInfo)")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors", Scope = "type", Target = "System.ComponentModel.Composition.ChangeRejectedException")]\r
+[module: SuppressMessage("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly", Scope = "type", Target = "System.ComponentModel.Composition.CompositionException")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors", Scope = "type", Target = "System.ComponentModel.Composition.CompositionException")]\r
+[module: SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Scope = "member", Target = "System.ComponentModel.Composition.CompositionException+CompositionExceptionData.#System.Runtime.Serialization.ISafeSerializationData.CompleteDeserialization(System.Object)")]\r
+\r
+\r
+\r
index 6a36c2f76f382ac00e96f1e83098da9902543167..ed5fbb4b9bda0108bfa0c26bff096e52a9eb0ff7 100644 (file)
@@ -53,7 +53,6 @@ namespace System.ComponentModel.Composition.AttributedModel
             IAttributedImport attributedImport = AttributedModelDiscovery.GetAttributedImport(reflectionParameter, parameter);\r
             ImportType importType = new ImportType(reflectionParameter.ReturnType, attributedImport.Cardinality);\r
 \r
-#if SILVERLIGHT\r
             if (importType.IsPartCreator)\r
             {\r
                 return new PartCreatorParameterImportDefinition(\r
@@ -69,7 +68,6 @@ namespace System.ComponentModel.Composition.AttributedModel
                         CreationPolicy.NonShared));\r
             }\r
             else\r
-#endif\r
             {\r
                 return new ReflectionParameterImportDefinition(\r
                     new Lazy<ParameterInfo>(() => parameter),\r
@@ -90,7 +88,6 @@ namespace System.ComponentModel.Composition.AttributedModel
             IAttributedImport attributedImport = AttributedModelDiscovery.GetAttributedImport(reflectionMember, member);\r
             ImportType importType = new ImportType(reflectionMember.ReturnType, attributedImport.Cardinality);\r
 \r
-#if SILVERLIGHT\r
             if (importType.IsPartCreator)\r
             {\r
                 return new PartCreatorMemberImportDefinition(\r
@@ -106,7 +103,6 @@ namespace System.ComponentModel.Composition.AttributedModel
                         CreationPolicy.NonShared));\r
             }\r
             else\r
-#endif\r
             {\r
                 return new ReflectionMemberImportDefinition(\r
                     new LazyMemberInfo(member),\r
index c46da4adaebd2b7772e418d3d0722cf4df24dac7..9bc3d2f705b4eea13747f641713772438de37844 100644 (file)
@@ -193,7 +193,10 @@ namespace System.ComponentModel.Composition.AttributedModel
 \r
         private void DiscoverExportsAndImports()\r
         {\r
-            if (this._exports != null)\r
+            // NOTE : in most cases both of these will be null or not null at the same time\r
+            // the only situation when that is not the case is when there was a failure during the previous discovery\r
+            // and one of them ended up not being set. In that case we will force the discovery again so that the same exception is thrown.\r
+            if ((this._exports != null) && (this._imports != null))\r
             {\r
                 return;\r
             }\r
@@ -325,10 +328,11 @@ namespace System.ComponentModel.Composition.AttributedModel
             {\r
                 yield break;\r
             }\r
-\r
+            \r
             // Stopping at object instead of null to help with performance. It is a noticable performance\r
             // gain (~5%) if we don't have to try and pull the attributes we know don't exist on object.\r
-            while (currentType != CompositionServices.ObjectType)\r
+            // We also need the null check in case we're passed a type that doesn't live in the runtime context.\r
+            while (currentType != null && currentType != CompositionServices.ObjectType)\r
             {\r
                 if (IsInheritedExport(currentType))\r
                 {\r
@@ -399,7 +403,8 @@ namespace System.ComponentModel.Composition.AttributedModel
 \r
                 // Stopping at object instead of null to help with performance. It is a noticable performance\r
                 // gain (~5%) if we don't have to try and pull the attributes we know don't exist on object.\r
-                while (baseType != CompositionServices.ObjectType)\r
+                // We also need the null check in case we're passed a type that doesn't live in the runtime context.\r
+                while (baseType != null && baseType != CompositionServices.ObjectType)\r
                 {\r
                     foreach (MemberInfo member in GetDeclaredOnlyImportMembers(baseType))\r
                     {\r
index 834843571638b691fb190168678547148f334cfb..db81e13fbd4a695ab23070c9a4260b31c990f39e 100644 (file)
@@ -7,12 +7,6 @@ using System.Globalization;
 using System.Security.Permissions;\r
 using Microsoft.Internal;\r
 \r
-#if !SILVERLIGHT\r
-\r
-using System.Runtime.Serialization;\r
-\r
-#endif\r
-\r
 namespace System.ComponentModel.Composition\r
 {\r
     /// <summary>\r
@@ -55,14 +49,6 @@ namespace System.ComponentModel.Composition
         {\r
         }\r
 \r
-#if !SILVERLIGHT\r
-        [System.Security.SecuritySafeCritical]\r
-        protected ChangeRejectedException(SerializationInfo info, StreamingContext context)\r
-            : base(info, context)\r
-        {\r
-        }\r
-#endif\r
-\r
         /// <summary>\r
         ///     Gets a message that describes the exception.\r
         /// </summary>\r
@@ -72,7 +58,6 @@ namespace System.ComponentModel.Composition
         /// </value>\r
         public override string Message\r
         {\r
-            [System.Security.SecuritySafeCritical]\r
             get\r
             {\r
                 return string.Format(CultureInfo.CurrentCulture, \r
index b18acfac77328999380ea0780e9e14f62c0c4da3..d5237502bc2e12baa1cb95f8556600fc2fcf5d7f 100644 (file)
@@ -9,11 +9,6 @@ using System.Globalization;
 using System.Security.Permissions;\r
 using Microsoft.Internal;\r
 \r
-#if !SILVERLIGHT\r
-using System.Runtime.Serialization;\r
-using Microsoft.Internal.Runtime.Serialization;\r
-#endif\r
-\r
 namespace System.ComponentModel.Composition\r
 {\r
     /// <summary>\r
@@ -22,15 +17,13 @@ namespace System.ComponentModel.Composition
     [Serializable]\r
     [DebuggerTypeProxy(typeof(CompositionErrorDebuggerProxy))]\r
     public class CompositionError : ICompositionError\r
-#if !SILVERLIGHT\r
-        , ISerializable\r
-#endif\r
     {\r
         private readonly CompositionErrorId _id;\r
         private readonly string _description;\r
         private readonly Exception _exception;\r
+\r
         private readonly ICompositionElement _element;\r
-        \r
+\r
         /// <summary>\r
         ///     Initializes a new instance of the <see cref="CompositionError"/> class\r
         ///     with the specified error message.\r
@@ -117,45 +110,9 @@ namespace System.ComponentModel.Composition
             _id = id;\r
             _description = description ?? string.Empty;\r
             _element = element;\r
-            _exception = exception;            \r
-        }\r
-\r
-#if !SILVERLIGHT\r
-\r
-        /// <summary>\r
-        ///     Initializes a new instance of the <see cref="CompositionError"/> class \r
-        ///     with the specified serialization data.\r
-        /// </summary>\r
-        /// <param name="info">\r
-        ///     The <see cref="SerializationInfo"/> that holds the serialized object data about the \r
-        ///     <see cref="CompositionError"/>.\r
-        /// </param>\r
-        /// <param name="context">\r
-        ///     The <see cref="StreamingContext"/> that contains contextual information about the \r
-        ///     source or destination.\r
-        /// </param>\r
-        /// <exception cref="ArgumentNullException">\r
-        ///     <paramref name="info"/> is <see langword="null"/>.\r
-        /// </exception>\r
-        /// <exception cref="SerializationException">\r
-        ///     <paramref name="info"/> is missing a required value.\r
-        /// </exception>\r
-        /// <exception cref="InvalidCastException">\r
-        ///     <paramref name="info"/> contains a value that cannot be cast to the correct type.\r
-        /// </exception>\r
-        [System.Security.SecuritySafeCritical]\r
-        protected CompositionError(SerializationInfo info, StreamingContext context)\r
-        {\r
-            Requires.NotNull(info, "info");\r
-\r
-            _id = info.GetValue<CompositionErrorId>("Id");\r
-            _element = info.GetValue<ICompositionElement>("Element");\r
-            _exception = info.GetValue<Exception>("Exception");\r
-            _description = info.GetString("Description");\r
+            _exception = exception;\r
         }\r
 \r
-#endif\r
-\r
         /// <summary>\r
         ///     Gets the composition element that is the cause of the error.\r
         /// </summary>\r
@@ -208,58 +165,11 @@ namespace System.ComponentModel.Composition
         /// <returns>\r
         ///     A <see cref="String"/> containing the <see cref="Description"/> property.\r
         /// </returns>\r
-        [System.Security.SecuritySafeCritical]\r
         public override string ToString()\r
         {\r
             return this.Description;\r
         }\r
 \r
-#if !SILVERLIGHT\r
-\r
-        /// <summary>\r
-        ///     Gets the serialization data of the exception.\r
-        /// </summary>\r
-        /// <param name="info">\r
-        ///     The <see cref="SerializationInfo"/> that holds the serialized object data about the \r
-        ///     <see cref="ComposablePartException"/>.\r
-        /// </param>\r
-        /// <param name="context">\r
-        ///     The <see cref="StreamingContext"/> that contains contextual information about the \r
-        ///     source or destination.\r
-        /// </param>\r
-        [System.Security.SecurityCritical]\r
-        protected virtual void GetObjectData(SerializationInfo info, StreamingContext context)\r
-        {\r
-            info.AddValue("Element", _element.ToSerializableElement());\r
-            info.AddValue("Id", _id);\r
-            info.AddValue("Exception", _exception); \r
-            info.AddValue("Description", _description);\r
-        }\r
-\r
-        /// <summary>\r
-        ///     Gets the serialization data of the exception.\r
-        /// </summary>\r
-        /// <param name="info">\r
-        ///     The <see cref="SerializationInfo"/> that holds the serialized object data about the \r
-        ///     <see cref="ComposablePartException"/>.\r
-        /// </param>\r
-        /// <param name="context">\r
-        ///     The <see cref="StreamingContext"/> that contains contextual information about the \r
-        ///     source or destination.\r
-        /// </param>\r
-        /// <exception cref="ArgumentNullException">\r
-        ///     <paramref name="info"/> is <see langword="null"/>.\r
-        /// </exception>\r
-        [System.Security.SecurityCritical]\r
-        void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)\r
-        {\r
-            Requires.NotNull(info, "info");\r
-\r
-            GetObjectData(info, context);\r
-        }\r
-\r
-#endif\r
-\r
         internal static CompositionError Create(CompositionErrorId id, string format, params object[] parameters)\r
         {\r
             return Create(id, (ICompositionElement)null, (Exception)null, format, parameters);\r
@@ -275,4 +185,4 @@ namespace System.ComponentModel.Composition
             return new CompositionError(id, string.Format(CultureInfo.CurrentCulture, format, parameters), element, exception);\r
         }\r
     }\r
-}
\ No newline at end of file
+}\r
index b17c60a1cf79dae572a8406955af5ee630adc25a..39491ad433b713ce5c88169d617c07ec6de8434d 100644 (file)
@@ -8,20 +8,15 @@ using System.ComponentModel.Composition.Hosting;
 using System.ComponentModel.Composition.Primitives;\r
 using System.Globalization;\r
 using System.Linq;\r
+using System.Runtime.Serialization;\r
 using System.Security.Permissions;\r
 using System.Text;\r
 using Microsoft.Internal;\r
 using Microsoft.Internal.Collections;\r
 \r
-#if !SILVERLIGHT\r
-\r
-using System.Runtime.Serialization;\r
-using Microsoft.Internal.Runtime.Serialization;\r
-\r
-#endif\r
-\r
 namespace System.ComponentModel.Composition\r
 {\r
+\r
     /// <summary>\r
     ///     The exception that is thrown when one or more errors occur during composition in \r
     ///     a <see cref="CompositionContainer"/>.\r
@@ -30,8 +25,22 @@ namespace System.ComponentModel.Composition
     public class CompositionException : Exception\r
     {\r
         const string ErrorsKey = "Errors";\r
+        private ReadOnlyCollection<CompositionError> _errors;\r
+\r
+#if CLR40 && !SILVERLIGHT\r
+        [Serializable]\r
+        private struct CompositionExceptionData : ISafeSerializationData\r
+        {\r
+            public CompositionError[] _errors;\r
 \r
-        private readonly ReadOnlyCollection<CompositionError> _errors;\r
+            void ISafeSerializationData.CompleteDeserialization(object obj)\r
+            {\r
+                CompositionException exception = obj as CompositionException;\r
+\r
+                exception._errors = new ReadOnlyCollection<CompositionError>(this._errors);\r
+            }\r
+        }\r
+#endif\r
 \r
         /// <summary>\r
         ///     Initializes a new instance of the <see cref="CompositionException"/> class.\r
@@ -102,42 +111,29 @@ namespace System.ComponentModel.Composition
             : base(message, innerException)\r
         {\r
             Requires.NullOrNotNullElements(errors, "errors");\r
+#if CLR40 && !SILVERLIGHT\r
+            SerializeObjectState += delegate(object exception, SafeSerializationEventArgs eventArgs)\r
+            {\r
+                var data = new CompositionExceptionData();\r
+                if(this._errors != null)\r
+                {\r
+                    data._errors = this._errors.Select(error => new CompositionError(\r
+                        ((ICompositionError)error).Id, \r
+                        error.Description,\r
+                        error.Element.ToSerializableElement(),\r
+                        error.Exception)).ToArray();\r
+                }\r
+                else\r
+                {\r
+                    data._errors = new CompositionError[0];\r
+                }\r
 \r
-            this._errors = new ReadOnlyCollection<CompositionError>(errors == null ? new CompositionError[0] : errors.ToArray());\r
-        }\r
-\r
-#if !SILVERLIGHT\r
-\r
-        /// <summary>\r
-        ///     Initializes a new instance of the <see cref="CompositionException"/> class \r
-        ///     with the specified serialization data.\r
-        /// </summary>\r
-        /// <param name="info">\r
-        ///     The <see cref="SerializationInfo"/> that holds the serialized object data about the \r
-        ///     <see cref="CompositionException"/>.\r
-        /// </param>\r
-        /// <param name="context">\r
-        ///     The <see cref="StreamingContext"/> that contains contextual information about the \r
-        ///     source or destination.\r
-        /// </param>\r
-        /// <exception cref="ArgumentNullException">\r
-        ///     <paramref name="info"/> is <see langword="null"/>.\r
-        /// </exception>\r
-        /// <exception cref="SerializationException">\r
-        ///     <paramref name="info"/> is missing a required value.\r
-        /// </exception>\r
-        /// <exception cref="InvalidCastException">\r
-        ///     <paramref name="info"/> contains a value that cannot be cast to the correct type.\r
-        /// </exception>\r
-        [System.Security.SecuritySafeCritical]\r
-        protected CompositionException(SerializationInfo info, StreamingContext context)\r
-            : base(info, context)\r
-        {\r
-            this._errors = info.GetValue<ReadOnlyCollection<CompositionError>>(ErrorsKey);\r
+                eventArgs.AddSerializedState(data);\r
+            };\r
+#endif\r
+            _errors = new ReadOnlyCollection<CompositionError>(errors == null ? new CompositionError[0] : errors.ToArray<CompositionError>());\r
         }\r
 \r
-#endif //!SILVERLIGHT\r
-\r
         /// <summary>\r
         ///     Gets the errors that are the cause of the exception.\r
         /// </summary>\r
@@ -175,32 +171,6 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
-#if !SILVERLIGHT\r
-\r
-        /// <summary>\r
-        ///     Gets the serialization data of the exception.\r
-        /// </summary>\r
-        /// <param name="info">\r
-        ///     The <see cref="SerializationInfo"/> that holds the serialized object data about the \r
-        ///     <see cref="ComposablePartException"/>.\r
-        /// </param>\r
-        /// <param name="context">\r
-        ///     The <see cref="StreamingContext"/> that contains contextual information about the \r
-        ///     source or destination.\r
-        /// </param>\r
-        /// <exception cref="ArgumentNullException">\r
-        ///     <paramref name="info"/> is <see langword="null"/>.\r
-        /// </exception>\r
-        [System.Security.SecurityCritical]\r
-        public override void GetObjectData(SerializationInfo info, StreamingContext context)\r
-        {\r
-            base.GetObjectData(info, context);\r
-\r
-            info.AddValue(ErrorsKey, _errors);\r
-        }\r
-\r
-#endif\r
-\r
         private string BuildDefaultMessage()\r
         {\r
             IEnumerable<IEnumerable<CompositionError>> paths = CalculatePaths(this);\r
index 22a9cdb3ce9eee0039a92bc32e6c730343cbc199..6882f92a49457a30ed2e4dd567b95c3cb7fc0486 100644 (file)
@@ -3,13 +3,14 @@
 // -----------------------------------------------------------------------\r
 using System;\r
 using System.ComponentModel.Composition.Hosting;\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
     /// <summary>\r
     ///     Specifies that a type, property, field, or method provides a particular export.\r
     /// </summary>\r
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
+    [SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method, \r
                     AllowMultiple = true, Inherited = false)]\r
     public class ExportAttribute : Attribute\r
index f39b2fa74bb9eb261939edc5a4bfde7b8b961dc1..9aa11951d594366d835d89a4d19536da11781183 100644 (file)
@@ -2,16 +2,15 @@
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
 using System;\r
-using System.Linq;\r
-using System.Collections;\r
 using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Hosting;\r
 using System.ComponentModel.Composition.Primitives;\r
-using System.ComponentModel.Composition.ReflectionModel;\r
+using System.Diagnostics.CodeAnalysis;\r
+using System.Globalization;\r
+using System.Linq;\r
 using System.Reflection;\r
 using Microsoft.Internal;\r
 using Microsoft.Internal.Collections;\r
-using System.Globalization;\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
@@ -21,10 +20,9 @@ namespace System.ComponentModel.Composition
         private static readonly MethodInfo _createStronglyTypedLazyOfTM = typeof(ExportServices).GetMethod("CreateStronglyTypedLazyOfTM", BindingFlags.NonPublic | BindingFlags.Static);\r
         private static readonly MethodInfo _createStronglyTypedLazyOfT = typeof(ExportServices).GetMethod("CreateStronglyTypedLazyOfT", BindingFlags.NonPublic | BindingFlags.Static);\r
         private static readonly MethodInfo _createSemiStronglyTypedLazy = typeof(ExportServices).GetMethod("CreateSemiStronglyTypedLazy", BindingFlags.NonPublic | BindingFlags.Static);\r
-#if SILVERLIGHT\r
-        private static readonly MethodInfo _createStronglyTypedPartCreatorOfT = typeof(ExportServices).GetMethod("CreateStronglyTypedPartCreatorOfT", BindingFlags.NonPublic | BindingFlags.Static);\r
-        private static readonly MethodInfo _createStronglyTypedPartCreatorOfTM = typeof(ExportServices).GetMethod("CreateStronglyTypedPartCreatorOfTM", BindingFlags.NonPublic | BindingFlags.Static);\r
-#endif\r
+        private static readonly MethodInfo _createStronglyTypedExportFactoryOfT = typeof(ExportServices).GetMethod("CreateStronglyTypedExportFactoryOfT", BindingFlags.NonPublic | BindingFlags.Static);\r
+        private static readonly MethodInfo _createStronglyTypedExportFactoryOfTM = typeof(ExportServices).GetMethod("CreateStronglyTypedExportFactoryOfTM", BindingFlags.NonPublic | BindingFlags.Static);\r
+\r
         internal static readonly Type DefaultMetadataViewType = typeof(IDictionary<string, object>);\r
         internal static readonly Type DefaultExportedValueType = typeof(object);\r
 \r
@@ -73,6 +71,7 @@ namespace System.ComponentModel.Composition
             return (Func<Export, Lazy<object, object>>)Delegate.CreateDelegate(typeof(Func<Export, Lazy<object,object>>), genericMethod);\r
         }\r
 \r
+        [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]\r
         internal static Lazy<T, M> CreateStronglyTypedLazyOfTM<T, M>(Export export)\r
         {\r
             IDisposable disposable = export as IDisposable;\r
@@ -92,6 +91,7 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
+        [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]\r
         internal static Lazy<T> CreateStronglyTypedLazyOfT<T>(Export export)\r
         {\r
             IDisposable disposable = export as IDisposable;\r
@@ -99,7 +99,7 @@ namespace System.ComponentModel.Composition
             {\r
                 return new DisposableLazy<T>(\r
                     () => ExportServices.GetCastedExportedValue<T>(export),\r
-                    export as IDisposable);\r
+                    disposable);\r
             }\r
             else\r
             {\r
@@ -108,6 +108,7 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
+        [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]\r
         internal static Lazy<object, object> CreateSemiStronglyTypedLazy<T, M>(Export export)\r
         {\r
             IDisposable disposable = export as IDisposable;\r
@@ -116,7 +117,7 @@ namespace System.ComponentModel.Composition
                 return new DisposableLazy<object, object>(\r
                     () => ExportServices.GetCastedExportedValue<T>(export),\r
                     AttributedModelServices.GetMetadataView<M>(export.Metadata),\r
-                    export as IDisposable);\r
+                    disposable);\r
             }\r
             else\r
             {\r
@@ -128,25 +129,24 @@ namespace System.ComponentModel.Composition
             }\r
         }\r
 \r
-#if SILVERLIGHT\r
-\r
-        internal static Func<Export, object> CreateStronglyTypedPartCreatorFactory(Type exportType, Type metadataType)\r
+        internal static Func<Export, object> CreateStronglyTypedExportFactoryFactory(Type exportType, Type metadataType, ConstructorInfo constructor)\r
         {\r
             MethodInfo genericMethod = null;\r
             if (metadataType == null)\r
             {\r
-                 genericMethod = _createStronglyTypedPartCreatorOfT.MakeGenericMethod(exportType);\r
+                 genericMethod = _createStronglyTypedExportFactoryOfT.MakeGenericMethod(exportType);\r
             }\r
             else\r
             {\r
-                genericMethod = _createStronglyTypedPartCreatorOfTM.MakeGenericMethod(exportType, metadataType);\r
+                genericMethod = _createStronglyTypedExportFactoryOfTM.MakeGenericMethod(exportType, metadataType);\r
             }\r
             \r
             Assumes.NotNull(genericMethod);\r
-            return (Func<Export, object>)Delegate.CreateDelegate(typeof(Func<Export, object>), genericMethod);\r
+            Func<Export, ConstructorInfo, object> exportFactoryFactory = (Func<Export, ConstructorInfo, object>)Delegate.CreateDelegate(typeof(Func<Export, ConstructorInfo, object>), genericMethod);\r
+            return (e) => exportFactoryFactory.Invoke(e, constructor);\r
         }\r
 \r
-        private static PartLifetimeContext<T> GetPartLifetimeContextFromExport<T>(Export export)\r
+        private static Tuple<T, Action> GetExportLifetimeContextFromExport<T>(Export export)\r
         {\r
             T exportedValue;\r
             Action disposeAction;\r
@@ -181,24 +181,21 @@ namespace System.ComponentModel.Composition
                 disposeAction = () => { };\r
             }\r
 \r
-            return new PartLifetimeContext<T>(exportedValue, disposeAction);\r
+            return new Tuple<T, Action>(exportedValue, disposeAction);\r
         }\r
 \r
-        private static object CreateStronglyTypedPartCreatorOfT<T>(Export export)\r
+        private static object CreateStronglyTypedExportFactoryOfT<T>(Export export, ConstructorInfo constructor)\r
         {\r
-            return new PartCreator<T>(\r
-                () => ExportServices.GetPartLifetimeContextFromExport<T>(export));\r
+            Func<Tuple<T, Action>> exportLifetimeContextCreator = () => ExportServices.GetExportLifetimeContextFromExport<T>(export);\r
+            return constructor.Invoke(new object[] { exportLifetimeContextCreator });\r
         }\r
 \r
-        private static object CreateStronglyTypedPartCreatorOfTM<T, M>(Export export)\r
+        private static object CreateStronglyTypedExportFactoryOfTM<T, M>(Export export, ConstructorInfo constructor)\r
         {\r
-            return new PartCreator<T, M>(\r
-                () => ExportServices.GetPartLifetimeContextFromExport<T>(export),\r
-                AttributedModelServices.GetMetadataView<M>(export.Metadata));\r
+            Func<Tuple<T, Action>> exportLifetimeContextCreator = () => ExportServices.GetExportLifetimeContextFromExport<T>(export);\r
+            return constructor.Invoke(new object[] { exportLifetimeContextCreator, AttributedModelServices.GetMetadataView<M>(export.Metadata) });\r
         }\r
 \r
-#endif\r
-\r
         internal static T GetCastedExportedValue<T>(Export export)\r
         {\r
             return CastExportedValue<T>(export.ToElement(), export.Value);\r
index 00391910916658df66814453b866e7b82dfd18b1..b1e079b07467a90bc062d6ab9545cfe5831a85cb 100644 (file)
@@ -6,6 +6,7 @@ using System.Collections.Generic;
 using System.ComponentModel.Composition.Primitives;\r
 using System.ComponentModel.Composition.ReflectionModel;\r
 using System.Diagnostics;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Globalization;\r
 using System.IO;\r
 using System.Linq;\r
@@ -208,6 +209,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <value>\r
         ///     A <see cref="String"/> containing a human-readable display name of the <see cref="AssemblyCatalog"/>.\r
         /// </value>\r
+        [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]\r
         string ICompositionElement.DisplayName\r
         {\r
             get { return this.GetDisplayName(); }\r
@@ -219,6 +221,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <value>\r
         ///     This property always returns <see langword="null"/>.\r
         /// </value>\r
+        [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]\r
         ICompositionElement ICompositionElement.Origin\r
         {\r
             get { return null; }\r
@@ -237,10 +240,10 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
 \r
         protected override void Dispose(bool disposing)\r
-        {\r
-            if (Interlocked.CompareExchange(ref this._isDisposed, 1, 0) == 0)\r
+        {                \r
+            try\r
             {\r
-                try\r
+                if (Interlocked.CompareExchange(ref this._isDisposed, 1, 0) == 0)\r
                 {\r
                     if (disposing)\r
                     {\r
@@ -250,10 +253,10 @@ namespace System.ComponentModel.Composition.Hosting
                         }\r
                     }\r
                 }\r
-                finally\r
-                {\r
-                    base.Dispose(disposing);\r
-                }\r
+            }\r
+            finally\r
+            {\r
+                base.Dispose(disposing);\r
             }\r
         }\r
 \r
index 5a2394da87097566c13c7a54bf8390b4e025bb98..4c027f73d3d2b71b8171d51c153c77a1dc1490ce 100644 (file)
@@ -2,6 +2,7 @@
 using System.Diagnostics;\r
 using System.Collections.Generic;\r
 using Microsoft.Internal;\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System.ComponentModel.Composition.Hosting\r
 {\r
@@ -31,8 +32,7 @@ namespace System.ComponentModel.Composition.Hosting
     /// </summary>\r
     public class AtomicComposition : IDisposable\r
     {\r
-        private AtomicComposition _outerAtomicComposition;\r
-\r
+        private readonly AtomicComposition _outerAtomicComposition;\r
         private KeyValuePair<object, object>[] _values;\r
         private int _valueCount = 0;\r
         private List<Action> _completeActionList;\r
@@ -48,12 +48,11 @@ namespace System.ComponentModel.Composition.Hosting
 \r
         public AtomicComposition(AtomicComposition outerAtomicComposition)\r
         {\r
-            this._outerAtomicComposition = outerAtomicComposition;\r
-\r
             // Lock the inner atomicComposition so that we can assume nothing changes except on\r
             // the innermost scope, and thereby optimize the query path\r
             if (outerAtomicComposition != null)\r
             {\r
+                this._outerAtomicComposition = outerAtomicComposition;\r
                 this._outerAtomicComposition.ContainsInnerAtomicComposition = true;\r
             }\r
         }\r
@@ -74,7 +73,7 @@ namespace System.ComponentModel.Composition.Hosting
             return TryGetValue(key, false, out value);\r
         }\r
 \r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]\r
+        [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]\r
         public bool TryGetValue<T>(object key, bool localAtomicCompositionOnly, out T value) \r
         {\r
             ThrowIfDisposed();\r
index 0c24e35b3eef59894faf8ca4e5ef5b0e3b8c7b3b..d78db6d055be7dca2e61c8cf24fb97bbedae83ce 100644 (file)
@@ -5,6 +5,7 @@ using System;
 using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Primitives;\r
 using System.Diagnostics;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Globalization;\r
 using System.Linq;\r
 using System.Runtime.CompilerServices;\r
@@ -40,9 +41,11 @@ namespace System.ComponentModel.Composition.Hosting
             }\r
 \r
             public override IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>> GetExports(\r
-                ImportDefinition import)\r
+                ImportDefinition definition)\r
             {\r
-                var originalExports = this._originalCatalog.GetExports(import);\r
+                Requires.NotNull(definition, "definition");\r
+\r
+                var originalExports = this._originalCatalog.GetExports(definition);\r
                 var trimmedExports = originalExports.Where(partAndExport =>\r
                     !this._removedParts.Contains(partAndExport.Item1));\r
 \r
@@ -51,7 +54,7 @@ namespace System.ComponentModel.Composition.Hosting
                 {\r
                     foreach (var export in part.ExportDefinitions)\r
                     {\r
-                        if (import.IsConstraintSatisfiedBy(export))\r
+                        if (definition.IsConstraintSatisfiedBy(export))\r
                         {\r
                             addedExports.Add(new Tuple<ComposablePartDefinition, ExportDefinition>(part, export));\r
                         }\r
index 2c74d4708e9476d4f5ebca2321b148c605569463..0741cf3f4f5ba1a07450603b534336afdede3107 100644 (file)
@@ -3,6 +3,7 @@
 // -----------------------------------------------------------------------\r
 using System;\r
 using System.ComponentModel.Composition.Primitives;\r
+using System.Diagnostics.CodeAnalysis;\r
 using Microsoft.Internal;\r
 \r
 namespace System.ComponentModel.Composition.Hosting\r
@@ -49,7 +50,7 @@ namespace System.ComponentModel.Composition.Hosting
                 return exportedValue;\r
             }\r
 \r
-\r
+            [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]\r
             public static CatalogExport CreateExport(CatalogExportProvider catalogExportProvider,\r
                 ComposablePartDefinition partDefinition, ExportDefinition definition, CreationPolicy importCreationPolicy)\r
             {\r
index 722765d7c8e562c5f464f9a88cddfe9cf5b01f2b..14d4a42d137b6d8aa6f4a98c55e9d7eb53beb668 100644 (file)
@@ -1,9 +1,6 @@
 // -----------------------------------------------------------------------\r
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
-\r
-#if SILVERLIGHT\r
-\r
 using System;\r
 using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Primitives;\r
@@ -133,4 +130,3 @@ namespace System.ComponentModel.Composition.Hosting
         }\r
     }\r
 }\r
-#endif\r
index a155f58cbc888702fde88533d91e84dfb2290c6b..5c00b5a004f658093757c2719ce1da3b4409b5db 100644 (file)
@@ -7,6 +7,7 @@ using System.ComponentModel.Composition.Diagnostics;
 using System.ComponentModel.Composition.Primitives;\r
 using System.ComponentModel.Composition.ReflectionModel;\r
 using System.Diagnostics;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Globalization;\r
 using System.Linq;\r
 using System.Runtime.CompilerServices;\r
@@ -107,6 +108,7 @@ namespace System.ComponentModel.Composition.Hosting
         ///     This property must be set before accessing any methods on the \r
         ///     <see cref="CatalogExportProvider"/>.\r
         /// </remarks>\r
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification="EnsureCanSet ensures that the property is set only once, Dispose is not required")]\r
         public ExportProvider SourceProvider\r
         {\r
             get\r
@@ -173,6 +175,8 @@ namespace System.ComponentModel.Composition.Hosting
                     bool disposeLock = false;\r
                     INotifyComposablePartCatalogChanged catalogToUnsubscribeFrom = null;\r
                     HashSet<IDisposable> partsToDispose = null;\r
+                    ExportProvider sourceProviderToUnsubscribeFrom = null;\r
+                    ImportEngine importEngineToDispose = null;\r
 \r
                     try\r
                     {\r
@@ -183,6 +187,12 @@ namespace System.ComponentModel.Composition.Hosting
                                 catalogToUnsubscribeFrom = this._catalog as INotifyComposablePartCatalogChanged;\r
                                 this._catalog = null;\r
 \r
+                                sourceProviderToUnsubscribeFrom = this._sourceProvider;\r
+                                this._sourceProvider = null;\r
+\r
+                                importEngineToDispose = this._importEngine;\r
+                                this._importEngine = null;\r
+\r
                                 partsToDispose = this._partsToDispose;\r
                                 this._partsToDispose = new HashSet<IDisposable>();\r
                                 this._activatedParts.Clear();\r
@@ -200,6 +210,16 @@ namespace System.ComponentModel.Composition.Hosting
                             catalogToUnsubscribeFrom.Changing -= this.OnCatalogChanging;\r
                         }\r
 \r
+                        if (sourceProviderToUnsubscribeFrom != null)\r
+                        {\r
+                            sourceProviderToUnsubscribeFrom.ExportsChanging -= this.OnExportsChangingInternal;\r
+                        }\r
+\r
+                        if (importEngineToDispose != null)\r
+                        {\r
+                            importEngineToDispose.Dispose();\r
+                        }\r
+\r
                         if (partsToDispose != null)\r
                         {\r
                             foreach (var part in partsToDispose)\r
@@ -244,7 +264,6 @@ namespace System.ComponentModel.Composition.Hosting
             // Use the version of the catalog appropriate to this atomicComposition\r
             ComposablePartCatalog currentCatalog = atomicComposition.GetValueAllowNull(this._catalog);\r
 \r
-#if SILVERLIGHT\r
             IPartCreatorImportDefinition partCreatorDefinition = definition as IPartCreatorImportDefinition;\r
             bool isPartCreator = false;\r
 \r
@@ -253,7 +272,7 @@ namespace System.ComponentModel.Composition.Hosting
                 definition = partCreatorDefinition.ProductImportDefinition;\r
                 isPartCreator = true;\r
             }\r
-#endif\r
+\r
             CreationPolicy importPolicy = definition.GetRequiredCreationPolicy();\r
 \r
             List<Export> exports = new List<Export>();\r
@@ -261,7 +280,6 @@ namespace System.ComponentModel.Composition.Hosting
             {\r
                 if (!IsRejected(partDefinitionAndExportDefinition.Item1, atomicComposition))\r
                 {\r
-#if SILVERLIGHT\r
                     if (isPartCreator)\r
                     {\r
                         exports.Add(new PartCreatorExport(this,\r
@@ -269,7 +287,6 @@ namespace System.ComponentModel.Composition.Hosting
                             partDefinitionAndExportDefinition.Item2));\r
                     }\r
                     else\r
-#endif\r
                     {\r
                         exports.Add(CatalogExport.CreateExport(this, \r
                             partDefinitionAndExportDefinition.Item1, \r
@@ -303,15 +320,14 @@ namespace System.ComponentModel.Composition.Hosting
                     // will need to start tracking all the PartCreator's we hand out and only send those which we \r
                     // have handed out. In fact we could do the same thing for all the Exports if we wished but \r
                     // that requires a cache management which we don't want to do at this point.\r
-#if SILVERLIGHT\r
                     exports.Add(new PartCreatorExportDefinition(export));\r
-#endif\r
                 }\r
             }\r
 \r
             return exports.ToArray();\r
         }\r
 \r
+        [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]\r
         private void OnCatalogChanging(object sender, ComposablePartCatalogChangeEventArgs e)\r
         {\r
             using (var atomicComposition = new AtomicComposition(e.AtomicComposition))\r
@@ -337,12 +353,13 @@ namespace System.ComponentModel.Composition.Hosting
                     }\r
                     if (removed)\r
                     {\r
+                        var capturedDefinition = definition;\r
                         ReleasePart(null, removedPart, atomicComposition);\r
                         atomicComposition.AddCompleteActionAllowNull(() =>\r
                         {\r
                             using (this._lock.LockStateForWrite())\r
                             {\r
-                                this._activatedParts.Remove(definition);\r
+                                this._activatedParts.Remove(capturedDefinition);\r
                             }\r
                         });\r
                     }\r
index 13035976061c77614adf809aa7f0d307f4fc3651..e8c68eab905396513a9e8781f04bcb384bc85acb 100644 (file)
@@ -113,6 +113,7 @@ namespace System.ComponentModel.Composition.Hosting
         ///     This property must be set before accessing any methods on the \r
         ///     <see cref="ComposablePartExportProvider"/>.\r
         /// </remarks>\r
+        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "EnsureCanSet ensures that the property is set only once, Dispose is not required")]\r
         public ExportProvider SourceProvider\r
         {\r
             get\r
index 486cefd1dd5177aef041018ea5044ed50e79f9d0..e8cbaa144a25ba86e45e5f117b3893208c317869 100644 (file)
@@ -12,9 +12,9 @@ namespace System.ComponentModel.Composition.Hosting
 \r
         public const string PartCreationPolicyMetadataName = CompositionNamespace + ".CreationPolicy";\r
         public const string ExportTypeIdentityMetadataName = "ExportTypeIdentity";\r
-        public const string ProductDefinitionMetadataName = "ProductDefinition";\r
+        internal const string ProductDefinitionMetadataName = "ProductDefinition";\r
 \r
-        public const string PartCreatorContractName = CompositionNamespace + ".Contracts.PartCreator";\r
-        public static readonly string PartCreatorTypeIdentity = AttributedModelServices.GetTypeIdentity(typeof(ComposablePartDefinition));\r
+        internal const string PartCreatorContractName = CompositionNamespace + ".Contracts.ExportFactory";\r
+        internal static readonly string PartCreatorTypeIdentity = AttributedModelServices.GetTypeIdentity(typeof(ComposablePartDefinition));\r
     }\r
 }\r
index ca04f94da61c6e1453525efe88535d9feccc891c..bdbd5c0595d31c89b0c73967529e4ffdf82334a8 100644 (file)
@@ -303,7 +303,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <exception cref="ArgumentException">\r
         ///     <paramref name="exports"/> contains an element that is <see langword="null"/>.\r
         /// </exception>\r
-        [SuppressMessage("Microsoft.Design", "CA1006")]\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public void ReleaseExports<T>(IEnumerable<Lazy<T>> exports)\r
         {\r
             Requires.NotNullOrNullElements(exports, "exports");\r
@@ -325,7 +325,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <exception cref="ArgumentException">\r
         ///     <paramref name="exports"/> contains an element that is <see langword="null"/>.\r
         /// </exception>\r
-        [SuppressMessage("Microsoft.Design", "CA1006")]\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public void ReleaseExports<T, TMetadataView>(IEnumerable<Lazy<T, TMetadataView>> exports)\r
         {\r
             Requires.NotNullOrNullElements(exports, "exports");\r
index 282bd5cc493f0898a3f710146e76cf821dbe8b9c..5a7d9851e5794f848d0f3be1328c649063743a3f 100644 (file)
@@ -165,7 +165,9 @@ namespace System.ComponentModel.Composition.Hosting
                         throw ExceptionBuilder.CreateDiscoveryException(Strings.Discovery_ReservedMetadataNameUsed, member.GetDisplayName(), provider.Name);\r
                     }\r
 \r
-                    if (!dictionary.TryContributeMetadataValue(provider.Name, provider.Value, provider.IsMultiple))\r
+                    // we pass "null" for valueType which would make it inferred. We don;t have additional type information when metadata\r
+                    // goes through the ExportMetadataAttribute path\r
+                    if (!dictionary.TryContributeMetadataValue(provider.Name, provider.Value, null, provider.IsMultiple))\r
                     {\r
                         throw ExceptionBuilder.CreateDiscoveryException(Strings.Discovery_DuplicateMetadataNameValues, member.GetDisplayName(), provider.Name);\r
                     }\r
@@ -203,7 +205,7 @@ namespace System.ComponentModel.Composition.Hosting
                                 throw ExceptionBuilder.CreateDiscoveryException(Strings.Discovery_MetadataContainsValueWithInvalidType, pi.GetDisplayName(), value.GetType().GetDisplayName());\r
                             }\r
 \r
-                            if (!dictionary.TryContributeMetadataValue(pi.Name, value, allowsMultiple))\r
+                            if (!dictionary.TryContributeMetadataValue(pi.Name, value, pi.PropertyType, allowsMultiple))\r
                             {\r
                                 throw ExceptionBuilder.CreateDiscoveryException(Strings.Discovery_DuplicateMetadataNameValues, member.GetDisplayName(), pi.Name);\r
                             }\r
@@ -225,7 +227,7 @@ namespace System.ComponentModel.Composition.Hosting
             return;\r
         }\r
 \r
-        private static bool TryContributeMetadataValue(this IDictionary<string, object> dictionary, string name, object value, bool allowsMultiple)\r
+        private static bool TryContributeMetadataValue(this IDictionary<string, object> dictionary, string name, object value, Type valueType, bool allowsMultiple)\r
         {\r
             object metadataValue;\r
             if (!dictionary.TryGetValue(name, out metadataValue))\r
@@ -233,7 +235,7 @@ namespace System.ComponentModel.Composition.Hosting
                 if (allowsMultiple)\r
                 {\r
                     var list = new MetadataList();\r
-                    list.Add(value);\r
+                    list.Add(value, valueType);\r
                     value = list;\r
                 }\r
 \r
@@ -250,49 +252,89 @@ namespace System.ComponentModel.Composition.Hosting
                     return false;\r
                 }\r
 \r
-                list.Add(value);\r
+                list.Add(value, valueType);\r
             }\r
             return true;\r
         }\r
 \r
-        private class MetadataList : Collection<object>\r
+        private class MetadataList\r
         {\r
             private Type _arrayType = null;\r
-            private bool _mustBeReferenceType = false;\r
+            private bool _containsNulls = false;\r
+            private static readonly Type ObjectType = typeof(object);\r
+            private static readonly Type TypeType = typeof(Type);\r
+            private Collection<object> _innerList = new Collection<object>();\r
 \r
-            protected override void InsertItem(int index, object item)\r
+            public void Add(object item, Type itemType)\r
             {\r
-                if (item == null)\r
+                this._containsNulls |= (item == null);\r
+\r
+                // if we've been passed typeof(object), we basically have no type inmformation\r
+                if (itemType == ObjectType)\r
+                {\r
+                    itemType = null;\r
+                }\r
+\r
+                // if we have no type information, get it from the item, if we can\r
+                if ((itemType == null) && (item != null))\r
+                {\r
+                    itemType = item.GetType();\r
+                }\r
+\r
+                // Types are special, because the are abstract classes, so if the item casts to Type, we assume System.Type\r
+                if (item is Type)\r
+                {\r
+                    itemType = TypeType;\r
+                }\r
+\r
+                // only try to call this if we got a meaningful type\r
+                if (itemType != null)\r
+                {\r
+                    this.InferArrayType(itemType);\r
+                }\r
+\r
+                this._innerList.Add(item);\r
+            }\r
+\r
+            private void InferArrayType(Type itemType)\r
+            {\r
+                Assumes.NotNull(itemType);\r
+\r
+                if (this._arrayType == null)\r
                 {\r
-                    this._mustBeReferenceType = true;\r
+                    // this is the first typed element we've been given, it sets the type of the array\r
+                    this._arrayType = itemType;\r
                 }\r
                 else\r
                 {\r
-                    if (this._arrayType == null)\r
+                    // if there's a disagreement on the array type, we flip to Object\r
+                    // NOTE : we can try to do better in the future to find common base class, but given that we support very limited set of types\r
+                    // in metadata right now, it's a moot point\r
+                    if (this._arrayType != itemType)\r
                     {\r
-                        this._arrayType = item.GetType();\r
-                    }\r
-                    else if (this._arrayType != item.GetType())\r
-                    {\r
-                        this._arrayType = typeof(object);\r
+                        this._arrayType = ObjectType;\r
                     }\r
                 }\r
-\r
-                base.InsertItem(index, item);\r
             }\r
 \r
             public Array ToArray()\r
             {\r
-                if (this._mustBeReferenceType && this._arrayType.IsValueType)\r
+                if (this._arrayType == null)\r
+                {\r
+                    // if the array type has not been set, assume Object \r
+                    this._arrayType = ObjectType;\r
+                }\r
+                else if (this._containsNulls && this._arrayType.IsValueType)\r
                 {\r
-                    this._arrayType = typeof(object);\r
+                    // if the array type is a value type and we have seen nulls, then assume Object\r
+                    this._arrayType = ObjectType;\r
                 }\r
 \r
-                Array array = Array.CreateInstance(this._arrayType, this.Count);\r
+                Array array = Array.CreateInstance(this._arrayType, this._innerList.Count);\r
 \r
                 for(int i = 0; i < array.Length; i++)\r
                 {\r
-                    array.SetValue(this[i], i);\r
+                    array.SetValue(this._innerList[i], i);\r
                 }\r
                 return array;\r
             }\r
index 616ef4577a4995bb34217c3fc205b385f26c3233..0b9a8fb9c8a734e7a808ed63e257c82547326890 100644 (file)
@@ -9,6 +9,7 @@ using System.Collections.ObjectModel;
 using System.ComponentModel.Composition.Diagnostics;\r
 using System.ComponentModel.Composition.Primitives;\r
 using System.Diagnostics;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Globalization;\r
 using System.IO;\r
 using System.Linq;\r
@@ -468,7 +469,7 @@ namespace System.ComponentModel.Composition.Hosting
         private string[] GetFiles()\r
         {\r
             string[] files = Directory.GetFiles(this._fullPath, this._searchPattern);\r
-            return Array.ConvertAll<string, string>(files, (file) => file);\r
+            return Array.ConvertAll<string, string>(files, (file) => file.ToUpperInvariant());\r
         }\r
 \r
         private static string GetFullPath(string path)\r
@@ -478,7 +479,7 @@ namespace System.ComponentModel.Composition.Hosting
                 path = IOPath.Combine(AppDomain.CurrentDomain.BaseDirectory, path);\r
             }\r
 \r
-            return IOPath.GetFullPath(path);\r
+            return IOPath.GetFullPath(path).ToUpperInvariant();\r
         }\r
 \r
         private void Initialize(string path, string searchPattern)\r
@@ -519,6 +520,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <value>\r
         ///     A <see cref="String"/> containing a human-readable display name of the <see cref="DirectoryCatalog"/>.\r
         /// </value>\r
+        [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]\r
         string ICompositionElement.DisplayName\r
         {\r
             get { return this.GetDisplayName(); }\r
@@ -530,6 +532,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <value>\r
         ///     This property always returns <see langword="null"/>.\r
         /// </value>\r
+        [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]\r
         ICompositionElement ICompositionElement.Origin\r
         {\r
             get { return null; }\r
index 5b5acec59b4eeaf02e5931af36d6000b9478e9aa..cabc1e5dc5cad6258cede56c98350286cac578cd 100644 (file)
@@ -7,6 +7,7 @@ using System.ComponentModel.Composition.AttributedModel;
 using System.ComponentModel.Composition.Primitives;\r
 using System.ComponentModel.Composition.ReflectionModel;\r
 using System.Diagnostics;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Globalization;\r
 using System.Linq;\r
 using System.Text;\r
@@ -129,6 +130,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <value>\r
         ///     A <see cref="String"/> containing a human-readable display name of the <see cref="TypeCatalog"/>.\r
         /// </value>\r
+        [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]\r
         string ICompositionElement.DisplayName\r
         {\r
             get { return this.GetDisplayName(); }\r
@@ -140,6 +142,7 @@ namespace System.ComponentModel.Composition.Hosting
         /// <value>\r
         ///     This property always returns <see langword="null"/>.\r
         /// </value>\r
+        [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]\r
         ICompositionElement ICompositionElement.Origin\r
         {\r
             get { return null; }\r
index 8ffbefb6ea9c6a79fe69e1308c7508f8c2279ec5..b4015271fbcd2be14386873a2a8c4f6dcc36c19e 100644 (file)
@@ -4,13 +4,14 @@
 using System;\r
 using System.ComponentModel.Composition.Hosting;\r
 using System.ComponentModel.Composition.Primitives;\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
     /// <summary>\r
     ///     Specifies that a property, field, or parameter imports a particular export.\r
     /// </summary>\r
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
+    [SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
     [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,\r
                     AllowMultiple = false, Inherited = false)]\r
     public class ImportAttribute : Attribute, IAttributedImport\r
index a89fd79ab676e29ac071dd88d99ce6ebff987368..79f706f60442bd3066a69b7fa7a4eed589d60cd0 100644 (file)
@@ -4,13 +4,14 @@
 using System;\r
 using System.ComponentModel.Composition.Hosting;\r
 using System.ComponentModel.Composition.Primitives;\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
     /// <summary>\r
     ///     Specifies that a property, field, or parameter imports a particular set of exports.\r
     /// </summary>\r
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
+    [SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
     [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter,\r
                     AllowMultiple = false, Inherited = false)]\r
     public class ImportManyAttribute : Attribute, IAttributedImport\r
index d0c27cff666e80dfd0eab2337db20cf5b04dbfb4..2263316d43caec8952cb753757fae1e924b028fd 100644 (file)
@@ -2,6 +2,7 @@
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
 using System;\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
@@ -13,7 +14,7 @@ namespace System.ComponentModel.Composition
     ///     construct an attributed part. Use this attribute to indicate that a specific constructor \r
     ///     should be used.\r
     /// </remarks>\r
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
+    [SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
     [AttributeUsage(AttributeTargets.Constructor, AllowMultiple = false, Inherited = false)]\r
     public class ImportingConstructorAttribute : Attribute\r
     {\r
index 425f190de1cefdc6d8bea36af5d9f3eee2af9650..ab42dfab9ab2d2de2e1fbf1147544078834c5373 100644 (file)
@@ -3,13 +3,14 @@
 // -----------------------------------------------------------------------\r
 using System;\r
 using System.ComponentModel.Composition.Hosting;\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
     /// <summary>\r
     ///     Specifies that a type or interface that provides a particular export.\r
     /// </summary>\r
-    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
+    [SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]\r
     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = true, Inherited = true)]\r
     public class InheritedExportAttribute : ExportAttribute\r
     {\r
index 939602fec3cfcccc363e440d0423515c07a2c80e..e582774eaa4a38228d2cfa54ac6fc50533627ffe 100644 (file)
@@ -101,10 +101,37 @@ namespace System.ComponentModel.Composition
                     }\r
                 }\r
             }\r
-\r
             return proxyType;\r
         }\r
 \r
+        private static void GenerateLocalAssignmentFromDefaultAttribute(this ILGenerator IL, DefaultValueAttribute[] attrs, LocalBuilder local)\r
+        {\r
+            if (attrs.Length > 0)\r
+            {\r
+                DefaultValueAttribute defaultAttribute = attrs[0];\r
+                IL.LoadValue(defaultAttribute.Value);\r
+                if ((defaultAttribute.Value != null) && (defaultAttribute.Value.GetType().IsValueType))\r
+                {\r
+                    IL.Emit(OpCodes.Box, defaultAttribute.Value.GetType());\r
+                }\r
+                IL.Emit(OpCodes.Stloc, local);\r
+            }\r
+        }\r
+\r
+        private static void GenerateFieldAssignmentFromLocalValue(this ILGenerator IL, LocalBuilder local, FieldBuilder field)\r
+        {\r
+            IL.Emit(OpCodes.Ldarg_0);\r
+            IL.Emit(OpCodes.Ldloc, local);\r
+            IL.Emit(field.FieldType.IsValueType ? OpCodes.Unbox_Any : OpCodes.Castclass, field.FieldType);\r
+            IL.Emit(OpCodes.Stfld, field);\r
+        }\r
+\r
+        private static void GenerateLocalAssignmentFromFlag(this ILGenerator IL, LocalBuilder local, bool flag)\r
+        {\r
+            IL.Emit(flag ? OpCodes.Ldc_I4_1 : OpCodes.Ldc_I4_0);\r
+            IL.Emit(OpCodes.Stloc, local);\r
+        }\r
+\r
         // This must be called with _readerWriterLock held for Write\r
         private static Type GenerateInterfaceViewProxyType(Type viewType)\r
         {\r
@@ -125,6 +152,7 @@ namespace System.ComponentModel.Composition
             LocalBuilder exceptionData = proxyCtorIL.DeclareLocal(typeof(IDictionary));\r
             LocalBuilder sourceType = proxyCtorIL.DeclareLocal(typeof(Type));\r
             LocalBuilder value = proxyCtorIL.DeclareLocal(typeof(object));\r
+            LocalBuilder usesExportedMD = proxyCtorIL.DeclareLocal(typeof(bool));\r
 \r
             Label tryConstructView = proxyCtorIL.BeginExceptionBlock();\r
 \r
@@ -161,37 +189,48 @@ namespace System.ComponentModel.Composition
                     propertyTypeArguments);\r
 \r
                 // Generate constructor code for retrieving the metadata value and setting the field\r
-                Label doneGettingDefaultValue = proxyCtorIL.DefineLabel();\r
+                Label tryCastValue = proxyCtorIL.BeginExceptionBlock();\r
+                Label innerTryCastValue;\r
+\r
+                DefaultValueAttribute[] attrs = propertyInfo.GetAttributes<DefaultValueAttribute>(false);\r
+                if(attrs.Length > 0)\r
+                {\r
+                    innerTryCastValue = proxyCtorIL.BeginExceptionBlock();\r
+                }\r
 \r
                 // In constructor set the backing field with the value from the dictionary\r
+                Label doneGettingDefaultValue = proxyCtorIL.DefineLabel();\r
+                GenerateLocalAssignmentFromFlag(proxyCtorIL, usesExportedMD, true);\r
+\r
                 proxyCtorIL.Emit(OpCodes.Ldarg_1);\r
                 proxyCtorIL.Emit(OpCodes.Ldstr, propertyInfo.Name);\r
                 proxyCtorIL.Emit(OpCodes.Ldloca, value);\r
                 proxyCtorIL.Emit(OpCodes.Callvirt, _mdvDictionaryTryGet);\r
                 proxyCtorIL.Emit(OpCodes.Brtrue, doneGettingDefaultValue);\r
 \r
-                object[] attrs = propertyInfo.GetCustomAttributes(typeof(DefaultValueAttribute), false);\r
+                proxyCtorIL.GenerateLocalAssignmentFromFlag(usesExportedMD, false);\r
+                proxyCtorIL.GenerateLocalAssignmentFromDefaultAttribute(attrs, value);\r
+\r
+                proxyCtorIL.MarkLabel(doneGettingDefaultValue);\r
+                proxyCtorIL.GenerateFieldAssignmentFromLocalValue(value, proxyFieldBuilder);\r
+                proxyCtorIL.Emit(OpCodes.Leave, tryCastValue);\r
+\r
+                // catch blocks for innerTryCastValue start here\r
                 if (attrs.Length > 0)\r
                 {\r
-                    DefaultValueAttribute defaultAttribute = (DefaultValueAttribute)attrs[0];\r
-                    proxyCtorIL.LoadValue(defaultAttribute.Value);\r
-                    if ((defaultAttribute.Value != null) && (defaultAttribute.Value.GetType().IsValueType))\r
+                    proxyCtorIL.BeginCatchBlock(typeof(InvalidCastException));\r
                     {\r
-                        proxyCtorIL.Emit(OpCodes.Box, defaultAttribute.Value.GetType());\r
+                        Label notUsesExportedMd = proxyCtorIL.DefineLabel();\r
+                        proxyCtorIL.Emit(OpCodes.Ldloc, usesExportedMD);\r
+                        proxyCtorIL.Emit(OpCodes.Brtrue, notUsesExportedMd);\r
+                        proxyCtorIL.Emit(OpCodes.Rethrow);\r
+                        proxyCtorIL.MarkLabel(notUsesExportedMd);\r
+                        proxyCtorIL.GenerateLocalAssignmentFromDefaultAttribute(attrs, value);\r
+                        proxyCtorIL.GenerateFieldAssignmentFromLocalValue(value, proxyFieldBuilder);\r
                     }\r
-                    proxyCtorIL.Emit(OpCodes.Stloc, value);\r
+                    proxyCtorIL.EndExceptionBlock();\r
                 }\r
 \r
-                proxyCtorIL.MarkLabel(doneGettingDefaultValue);\r
-\r
-                Label tryCastValue = proxyCtorIL.BeginExceptionBlock();\r
-                proxyCtorIL.Emit(OpCodes.Ldarg_0);\r
-                proxyCtorIL.Emit(OpCodes.Ldloc, value);\r
-\r
-                proxyCtorIL.Emit(propertyInfo.PropertyType.IsValueType ? OpCodes.Unbox_Any : OpCodes.Castclass, propertyInfo.PropertyType);\r
-                proxyCtorIL.Emit(OpCodes.Stfld, proxyFieldBuilder);\r
-                proxyCtorIL.Emit(OpCodes.Leave, tryCastValue);\r
-\r
                 // catch blocks for tryCast start here\r
                 proxyCtorIL.BeginCatchBlock(typeof(NullReferenceException));\r
                 {\r
@@ -212,8 +251,8 @@ namespace System.ComponentModel.Composition
                     proxyCtorIL.AddItemToLocalDictionary(exceptionData, MetadataItemTargetType, propertyInfo.PropertyType);\r
                     proxyCtorIL.Emit(OpCodes.Rethrow);\r
                 }\r
-                proxyCtorIL.EndExceptionBlock();\r
 \r
+                proxyCtorIL.EndExceptionBlock();\r
 \r
                 if (propertyInfo.CanWrite)\r
                 {\r
index 1e5d430c08561ea5e4445519ccd501e11c54af6f..8e22770cad6a39e1a19f3c6d517059d3d326808e 100644 (file)
@@ -9,12 +9,13 @@ using System.Text;
 using Microsoft.Internal;\r
 using System.Globalization;\r
 using System.Runtime.InteropServices;\r
+using System.Diagnostics.CodeAnalysis;\r
 \r
 namespace System.ComponentModel.Composition\r
 {\r
     internal static class MetadataViewProvider\r
     {\r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]\r
+        [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]\r
         public static TMetadataView GetMetadataView<TMetadataView>(IDictionary<string, object> metadata)\r
         {\r
             Type metadataViewType = typeof(TMetadataView);\r
@@ -47,7 +48,7 @@ namespace System.ComponentModel.Composition
                 // Now we have the type for the proxy create it\r
                 try\r
                 {\r
-                    return (TMetadataView)Activator.CreateInstance(proxyType, new object[] { metadata });\r
+                    return (TMetadataView)proxyType.SafeCreateInstance(metadata);\r
                 }\r
                 catch (MissingMethodException ex)\r
                 {\r
index 87da490da4c3f70392aeaa5fe711fc47bfa9b1d8..22fe9a20ff46d7c3d00ae8dfdc846aa15079c153 100644 (file)
@@ -5,6 +5,7 @@ using System;
 using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Hosting;\r
 using System.Diagnostics;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Linq;\r
 using System.Linq.Expressions;\r
 using Microsoft.Internal;\r
@@ -76,6 +77,7 @@ namespace System.ComponentModel.Composition.Primitives
         ///         <paramref name="definition"/>, return an empty <see cref="IEnumerable{T}"/>.\r
         ///     </note>\r
         /// </remarks>\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public virtual IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>> GetExports(ImportDefinition definition)\r
         {\r
             this.ThrowIfDisposed();\r
index ec11493ed13910877bd961dc76251d1837fe3c18..4cb34de38d71975112e4027445117448935ec728 100644 (file)
@@ -10,6 +10,7 @@ namespace System.ComponentModel.Composition.Primitives
     // Represents the ICompositionElement placeholder for an \r
     // object that does not implement ICompositionElement\r
     [DebuggerTypeProxy(typeof(CompositionElementDebuggerProxy))]\r
+    [Serializable]\r
     internal class CompositionElement : SerializableCompositionElement\r
     {\r
         private static readonly ICompositionElement UnknownOrigin = new SerializableCompositionElement(Strings.CompositionElement_UnknownOrigin, (ICompositionElement)null);\r
index 1656b2e49215c38d5ca580b8d706c76dbc57f9ba..010fad1789997b060301de65721a75fba63aadd0 100644 (file)
@@ -4,9 +4,11 @@
 using System;\r
 using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Hosting;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Linq;\r
 using System.Linq.Expressions;\r
 using Microsoft.Internal;\r
+using System.Globalization;\r
 \r
 namespace System.ComponentModel.Composition.Primitives\r
 {\r
@@ -22,6 +24,7 @@ namespace System.ComponentModel.Composition.Primitives
         private Expression<Func<ExportDefinition, bool>> _constraint;\r
         private readonly CreationPolicy _requiredCreationPolicy = CreationPolicy.Any;\r
         private readonly string _requiredTypeIdentity = null;\r
+        private bool _isRequiredMetadataValidated = false;\r
 \r
         /// <summary>\r
         ///     Initializes a new instance of the <see cref="ContractBasedImportDefinition"/> class.\r
@@ -94,13 +97,12 @@ namespace System.ComponentModel.Composition.Primitives
         ///     <paramref name="cardinality"/> is not one of the <see cref="ImportCardinality"/> \r
         ///     values.\r
         /// </exception>\r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public ContractBasedImportDefinition(string contractName, string requiredTypeIdentity, IEnumerable<KeyValuePair<string, Type>> requiredMetadata, \r
             ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite, CreationPolicy requiredCreationPolicy)\r
             : base(contractName, cardinality, isRecomposable, isPrerequisite)\r
         {\r
             Requires.NotNullOrEmpty(contractName, "contractName");\r
-            Requires.NullOrNotNullElements(requiredMetadata, "requiredMetadata");\r
 \r
             this._requiredTypeIdentity = requiredTypeIdentity;\r
 \r
@@ -141,10 +143,32 @@ namespace System.ComponentModel.Composition.Primitives
         ///         return an empty <see cref="IEnumerable{T}"/> instead.\r
         ///     </note>\r
         /// </remarks>\r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public virtual IEnumerable<KeyValuePair<string, Type>> RequiredMetadata\r
         {\r
-            get { return this._requiredMetadata; }\r
+            get\r
+            {\r
+                // NOTE : unlike other arguments, we validate this one as late as possible, because its validation may lead to type loading\r
+                this.ValidateRequiredMetadata();\r
+\r
+                return this._requiredMetadata;\r
+            }\r
+        }\r
+\r
+        private void ValidateRequiredMetadata()\r
+        {\r
+            if (!this._isRequiredMetadataValidated)\r
+            {\r
+                foreach (KeyValuePair<string, Type> metadataItem in this._requiredMetadata)\r
+                {\r
+                    if ((metadataItem.Key == null) || (metadataItem.Value == null))\r
+                    {\r
+                        throw new InvalidOperationException(\r
+                            string.Format(CultureInfo.CurrentCulture, Strings.Argument_NullElement, "requiredMetadata"));\r
+                    }\r
+                }\r
+                this._isRequiredMetadataValidated = true;\r
+            }\r
         }\r
 \r
         /// <summary>\r
@@ -213,8 +237,13 @@ namespace System.ComponentModel.Composition.Primitives
         ///         <see cref="Constraint"/> property but the result should remain consistent.\r
         ///     </note>\r
         /// </remarks>\r
+        /// <exception cref="ArgumentNullException">\r
+        ///     <paramref name="exportDefinition"/> is <see langword="null"/>.\r
+        /// </exception>\r
         public override bool IsConstraintSatisfiedBy(ExportDefinition exportDefinition)\r
         {\r
+            Requires.NotNull(exportDefinition, "exportDefinition");\r
+\r
             if (!StringComparers.ContractName.Equals(this.ContractName, exportDefinition.ContractName))\r
             {\r
                 return false;\r
index 0462fbe117abd4312a48514324144332342269a7..d6bc6297170905d368d25b80d12fe8e9ee7b6690 100644 (file)
@@ -15,7 +15,9 @@ namespace System.ComponentModel.Composition.Primitives
         private MethodInfo _method;\r
 \r
         protected ExportedDelegate() { }\r
-\r
+#if !SILVERLIGHT\r
+        [System.Security.SecurityCritical]\r
+#endif\r
         public ExportedDelegate(object instance, MethodInfo method)\r
         {\r
             Requires.NotNull(method, "method");\r
index f77c7a6758bea9bb0e132e81f74f74e3e129e4ee..307481c847f0d8dcff86d5e2d6fcad28d9b12b74 100644 (file)
@@ -3,14 +3,10 @@
 // -----------------------------------------------------------------------\r
 using System;\r
 \r
-#if SILVERLIGHT\r
-\r
 namespace System.ComponentModel.Composition.Primitives\r
 {\r
-    public interface IPartCreatorImportDefinition\r
+    internal interface IPartCreatorImportDefinition\r
     {\r
         ContractBasedImportDefinition ProductImportDefinition { get; }\r
     }\r
 }\r
-\r
-#endif
\ No newline at end of file
index 4d70c88f5328fa4d17ce3e826e0e242e88f76fae..9c81b51c90feae1a3c652ad1f5a0c55d6f39534f 100644 (file)
@@ -2,10 +2,10 @@
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
 using System;\r
-using System.Collections.Generic;\r
+using System.Diagnostics.CodeAnalysis;\r
+using System.Globalization;\r
 using System.Linq.Expressions;\r
 using Microsoft.Internal;\r
-using System.Globalization;\r
 \r
 namespace System.ComponentModel.Composition.Primitives\r
 {\r
@@ -76,6 +76,7 @@ namespace System.ComponentModel.Composition.Primitives
         ///     <paramref name="cardinality"/> is not one of the <see cref="ImportCardinality"/> \r
         ///     values.\r
         /// </exception>\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public ImportDefinition(Expression<Func<ExportDefinition, bool>> constraint, string contractName, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite)\r
             : this(contractName, cardinality, isRecomposable, isPrerequisite)\r
         {\r
@@ -146,6 +147,7 @@ namespace System.ComponentModel.Composition.Primitives
         ///         Overriders of this property should never return <see langword="null"/>.\r
         ///     </note>\r
         /// </remarks>\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public virtual Expression<Func<ExportDefinition, bool>> Constraint\r
         {\r
             get\r
@@ -205,8 +207,13 @@ namespace System.ComponentModel.Composition.Primitives
         ///         <see cref="Constraint"/> property but the result should remain consistent.\r
         ///     </note>\r
         /// </remarks>\r
+        /// <exception cref="ArgumentNullException">\r
+        ///     <paramref name="exportDefinition"/> is <see langword="null"/>.\r
+        /// </exception>\r
         public virtual bool IsConstraintSatisfiedBy(ExportDefinition exportDefinition)\r
         {\r
+            Requires.NotNull(exportDefinition, "exportDefinition");\r
+\r
             if (this._compiledConstraint == null)\r
             {\r
                 this._compiledConstraint = this.Constraint.Compile();\r
index 0863437711fc38c9ceb282e787e463f61c593cca..5276e7a152849661c6980fad2b19051dfccb6a33 100644 (file)
@@ -7,6 +7,7 @@ using System.ComponentModel.Composition.Primitives;
 using System.Globalization;\r
 using System.Reflection;\r
 using Microsoft.Internal;\r
+using System.Threading;\r
 \r
 namespace System.ComponentModel.Composition.ReflectionModel\r
 {\r
@@ -14,7 +15,8 @@ namespace System.ComponentModel.Composition.ReflectionModel
     {\r
         private readonly ExportDefinition _definition;\r
         private readonly ReflectionMember _member;\r
-        private volatile object _cachedValue = null;\r
+        private object _cachedValue = null;\r
+        private volatile bool _isValueCached = false;\r
 \r
         public ExportingMember(ExportDefinition definition, ReflectionMember member)\r
         {\r
@@ -38,7 +40,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
         {\r
             this.EnsureReadable();\r
 \r
-            if (this._cachedValue == null)\r
+            if (!this._isValueCached)\r
             {\r
                 object exportedValue;\r
                 try\r
@@ -61,9 +63,12 @@ namespace System.ComponentModel.Composition.ReflectionModel
 \r
                 lock (@lock)\r
                 {\r
-                    if (this._cachedValue == null)\r
+                    if (!this._isValueCached)\r
                     {\r
                         this._cachedValue = exportedValue;\r
+                        Thread.MemoryBarrier();\r
+\r
+                        this._isValueCached = true;\r
                     }\r
                 }\r
             }\r
index 8c45f6960cceebc375909e1928a9c7daa5713fbb..60da83d83a9553e301b2c123407cf9d944e955b9 100644 (file)
@@ -5,6 +5,7 @@ using System;
 using System.ComponentModel.Composition.Primitives;\r
 using Microsoft.Internal;\r
 using Microsoft.Internal.Collections;\r
+using System.Reflection;\r
 \r
 namespace System.ComponentModel.Composition.ReflectionModel\r
 {\r
@@ -13,10 +14,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
     {\r
         private static readonly Type LazyOfTType = typeof(Lazy<>);\r
         private static readonly Type LazyOfTMType = typeof(Lazy<,>);\r
-#if SILVERLIGHT\r
-        private static readonly Type PartCreatorOfTType = typeof(PartCreator<>);\r
-        private static readonly Type PartCreatorOfTMType = typeof(PartCreator<,>);\r
-#endif\r
+        private const string ExportFactoryTypeName = "System.ComponentModel.Composition.ExportFactory";\r
 \r
         private readonly Type _type;\r
         private readonly bool _isAssignableCollectionType;\r
@@ -51,9 +49,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
             get { return this._type; }\r
         }\r
 \r
-#if SILVERLIGHT\r
         public bool IsPartCreator { get; private set; }\r
-#endif\r
 \r
         public Type ContractType { get { return this._contractType; } }\r
 \r
@@ -91,22 +87,41 @@ namespace System.ComponentModel.Composition.ReflectionModel
                     return arguments[0];\r
                 }\r
 \r
-#if SILVERLIGHT\r
-                if (genericType == PartCreatorOfTType)\r
+                if (\r
+                    type.FullName.StartsWith(ExportFactoryTypeName, StringComparison.Ordinal) && \r
+                    ((arguments.Length == 1) || (arguments.Length == 2)))\r
                 {\r
-                    this.IsPartCreator = true;\r
-                    this._castSingleValue = ExportServices.CreateStronglyTypedPartCreatorFactory(arguments[0], null);\r
-                    return arguments[0];\r
-                }\r
-\r
-                if (genericType == PartCreatorOfTMType)\r
-                {\r
-                    this.IsPartCreator = true;\r
-                    this._castSingleValue = ExportServices.CreateStronglyTypedPartCreatorFactory(arguments[0], arguments[1]);\r
-                    this.MetadataViewType = arguments[1];\r
-                    return arguments[0];\r
+                    // Func<Tuple<T, Action>>\r
+                    Type exportLifetimeContextCreatorType = typeof(Func<>).MakeGenericType(typeof(Tuple<,>).MakeGenericType(arguments[0], typeof(Action)));\r
+                    ConstructorInfo constructor = null;\r
+\r
+                    if (arguments.Length == 1)\r
+                    {\r
+                        constructor = type.GetConstructor(new Type[] { exportLifetimeContextCreatorType });\r
+                    }\r
+                    else\r
+                    {\r
+                        Assumes.IsTrue(arguments.Length == 2);\r
+                        constructor = type.GetConstructor(new Type[] { exportLifetimeContextCreatorType, arguments[1] });\r
+                    }\r
+\r
+                    if (constructor != null)\r
+                    {\r
+                        this.IsPartCreator = true;\r
+                        if (arguments.Length == 1)\r
+                        {\r
+                            this._castSingleValue = ExportServices.CreateStronglyTypedExportFactoryFactory(arguments[0], null, constructor);\r
+                        }\r
+                        else\r
+                        {\r
+                            Assumes.IsTrue(arguments.Length == 2);\r
+                            this._castSingleValue = ExportServices.CreateStronglyTypedExportFactoryFactory(arguments[0], arguments[1], constructor);\r
+                            this.MetadataViewType = arguments[1];\r
+                        }\r
+\r
+                        return arguments[0];\r
+                    }\r
                 }\r
-#endif\r
             }\r
 \r
             return type;\r
index 32030e0617ef5680a8a1024900abc1d67a28ce38..6e5cffe183a045ffe541249f5a1bf4bb913ef81f 100644 (file)
@@ -6,6 +6,7 @@ using System.Collections;
 using System.ComponentModel.Composition.Hosting;\r
 using System.ComponentModel.Composition.Primitives;\r
 using System.Collections.Generic;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Globalization;\r
 using System.Reflection;\r
 using Microsoft.Internal;\r
@@ -142,7 +143,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
                 {\r
                     try\r
                     {\r
-                        collectionObject = constructor.Invoke(new object[] { });\r
+                        collectionObject = constructor.SafeInvoke();\r
                     }\r
                     catch (TargetInvocationException exception)\r
                     {\r
@@ -173,7 +174,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
             return CollectionServices.GetCollectionWrapper(itemType, collectionObject);\r
         }\r
 \r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]\r
+        [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]\r
         private void EnsureCollectionIsWritable(ICollection<object> collection)\r
         {\r
             bool isReadOnly = true;\r
@@ -208,7 +209,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
             }\r
         }\r
 \r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]\r
+        [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]\r
         private void PopulateCollection(ICollection<object> collection, IEnumerable values)\r
         {\r
             Assumes.NotNull(collection, values);\r
index 3f9efc37f2d8a61171437103e6818d865e57b924..6b492cf73083b9e5ae03eb5651d01be16995bf8d 100644 (file)
@@ -2,19 +2,20 @@
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
 using System;\r
+using System.Diagnostics.CodeAnalysis;\r
+using System.Globalization;\r
+using System.Linq;\r
 using System.Reflection;\r
-using Microsoft.Internal;\r
 using System.Threading;\r
-using System.Linq;\r
-using System.Globalization;\r
+using Microsoft.Internal;\r
 \r
 namespace System.ComponentModel.Composition.ReflectionModel\r
 {\r
     public struct LazyMemberInfo\r
     {\r
-        private MemberTypes _memberType;\r
+        private readonly MemberTypes _memberType;\r
         private MemberInfo[] _accessors;\r
-        private Func<MemberInfo[]> _accessorsCreator;\r
+        private readonly Func<MemberInfo[]> _accessorsCreator;\r
 \r
         public LazyMemberInfo(MemberInfo member)\r
         {\r
index 3f15ac1f0e3b4f1c80553bf86e8ec7c288a954f2..2b135441a3945e7191e9c80ba5e4a60da265e169 100644 (file)
@@ -6,8 +6,6 @@ using System.Collections.Generic;
 using System.ComponentModel.Composition.Hosting;\r
 using System.ComponentModel.Composition.Primitives;\r
 \r
-#if SILVERLIGHT\r
-\r
 namespace System.ComponentModel.Composition.ReflectionModel\r
 {\r
     internal class PartCreatorExportDefinition : ExportDefinition\r
@@ -62,5 +60,3 @@ namespace System.ComponentModel.Composition.ReflectionModel
         }\r
     }\r
 }\r
-\r
-#endif
\ No newline at end of file
index 4a45edd5d66407c4166c0ff7dfc8229fc08c58b9..8eb39638fe348632052c442224570136c8ea0043 100644 (file)
@@ -8,8 +8,6 @@ using System.ComponentModel.Composition.Primitives;
 using System.Linq.Expressions;\r
 using Microsoft.Internal;\r
 \r
-#if SILVERLIGHT\r
-\r
 namespace System.ComponentModel.Composition.ReflectionModel\r
 {\r
     internal class PartCreatorMemberImportDefinition : ReflectionMemberImportDefinition, IPartCreatorImportDefinition\r
@@ -48,5 +46,3 @@ namespace System.ComponentModel.Composition.ReflectionModel
         }\r
     }\r
 }\r
-\r
-#endif
\ No newline at end of file
index bdd65376a4819b9de036dbdd366cac059b20d731..df498e2a05798a0854afb134b4ecc62a4773610f 100644 (file)
@@ -9,8 +9,6 @@ using System.Linq.Expressions;
 using System.Reflection;\r
 using Microsoft.Internal;\r
 \r
-#if SILVERLIGHT\r
-\r
 namespace System.ComponentModel.Composition.ReflectionModel\r
 {\r
     internal class PartCreatorParameterImportDefinition : ReflectionParameterImportDefinition, IPartCreatorImportDefinition\r
@@ -48,5 +46,3 @@ namespace System.ComponentModel.Composition.ReflectionModel
         }\r
     }\r
 }\r
-\r
-#endif
\ No newline at end of file
index 91fbd11bc78ad8e41ac865519320da822d4373fd..908b99baa41b81c8036f4ccdaa1172172d060f26 100644 (file)
@@ -370,7 +370,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
 \r
             try\r
             {\r
-                instance = constructor.Invoke(arguments);\r
+                instance = constructor.SafeInvoke(arguments);\r
             }\r
             catch (TypeInitializationException ex) \r
             { \r
index 6f2dc4c0128729b9c25a2b5bbc3b53e9effe6519..347fa2ed8fbe161abac28ad0d9c39e15dc53ad99 100644 (file)
@@ -4,6 +4,7 @@
 using System;\r
 using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Primitives;\r
+using System.Diagnostics.CodeAnalysis;\r
 using System.Linq;\r
 using System.Reflection;\r
 using System.Threading;\r
@@ -119,6 +120,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
             }\r
         }\r
 \r
+        [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]\r
         public override ComposablePart CreatePart()\r
         {\r
             if (this.IsDisposalRequired)\r
index c6362edf1e2ad28b0c97669ae324603626cae03f..38879361ce2772b7ad1fd9869624c8f5a6e11091 100644 (file)
@@ -56,12 +56,12 @@ namespace System.ComponentModel.Composition.ReflectionModel
 \r
         public override object GetValue(object instance)\r
         {\r
-            return this.UndelyingField.GetValue(instance);\r
+            return this.UndelyingField.SafeGetValue(instance);\r
         }\r
 \r
         public override void SetValue(object instance, object value)\r
         {\r
-            this.UndelyingField.SetValue(instance, value);\r
+            this.UndelyingField.SafeSetValue(instance, value);\r
         }\r
     }\r
 }\r
index d8764d1b3ad212a393ffb5683a9e13e0ab022860..9dd963ddb09292017f77b04d79548fd7d77bc4db 100644 (file)
@@ -53,7 +53,18 @@ namespace System.ComponentModel.Composition.ReflectionModel
 \r
         public override object GetValue(object instance)\r
         {\r
-            return new ExportedDelegate(instance, this._method);\r
+            return SafeCreateExportedDelegate(instance, _method);\r
+        }\r
+#if !SILVERLIGHT\r
+        [System.Security.SecuritySafeCritical]\r
+#endif\r
+        private static ExportedDelegate SafeCreateExportedDelegate(object instance, MethodInfo method)\r
+        {\r
+            // We demand member access in place of the [SecurityCritical] \r
+            // attribute on ExportDelegate constructor\r
+            ReflectionInvoke.DemandMemberAccessIfNeeded(method);\r
+\r
+            return new ExportedDelegate(instance, method);\r
         }\r
     }\r
 }\r
index 5469219a3e8059cc89b11e925eb7f203cbefc52f..72cd0f817f38a8edfe93b18aa3e15f51972fccef 100644 (file)
@@ -2,17 +2,19 @@
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
 using System;\r
-using System.ComponentModel.Composition.Hosting;\r
+using System.Collections.Generic;\r
 using System.ComponentModel.Composition.Primitives;\r
+using System.Diagnostics.CodeAnalysis;\r
+using System.Globalization;\r
+using System.Linq;\r
 using System.Reflection;\r
 using Microsoft.Internal;\r
-using System.Collections.Generic;\r
-using System.Linq;\r
-using System.Threading;\r
-using System.Globalization;\r
 \r
 namespace System.ComponentModel.Composition.ReflectionModel\r
 {\r
+#if !SILVERLIGHT\r
+    [System.Security.SecurityCritical]\r
+#endif\r
     public static class ReflectionModelServices\r
     {\r
         public static Lazy<Type> GetPartType(ComposablePartDefinition partDefinition)\r
@@ -105,9 +107,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
             return (importDefinition is ReflectionParameterImportDefinition);\r
         }\r
 \r
-#if SILVERLIGHT\r
-\r
-        public static bool IsPartCreatorImportDefinition(ImportDefinition importDefinition)\r
+        internal static bool IsExportFactoryImportDefinition(ImportDefinition importDefinition)\r
         {\r
             Requires.NotNull(importDefinition, "importDefinition");\r
 \r
@@ -122,7 +122,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
             return (importDefinition is IPartCreatorImportDefinition);\r
         }\r
 \r
-        public static ContractBasedImportDefinition GetPartCreatorProductImportDefinition(ImportDefinition importDefinition)\r
+        internal static ContractBasedImportDefinition GetPartCreatorProductImportDefinition(ImportDefinition importDefinition)\r
         {\r
             Requires.NotNull(importDefinition, "importDefinition");\r
 \r
@@ -136,7 +136,6 @@ namespace System.ComponentModel.Composition.ReflectionModel
 \r
             return partCreatorImportDefinition.ProductImportDefinition;\r
         }\r
-#endif\r
 \r
         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public static ComposablePartDefinition CreatePartDefinition(\r
@@ -159,7 +158,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
                     origin));\r
         }\r
 \r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public static ExportDefinition CreateExportDefinition(\r
             LazyMemberInfo exportingMember,\r
             string contractName,\r
@@ -175,7 +174,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
                 origin);\r
         }\r
 \r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
         public static ContractBasedImportDefinition CreateImportDefinition(\r
             LazyMemberInfo importingMember,\r
             string contractName,\r
@@ -190,7 +189,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
         }\r
 \r
         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
-        public static ContractBasedImportDefinition CreateImportDefinition(\r
+        internal static ContractBasedImportDefinition CreateImportDefinition(\r
             LazyMemberInfo importingMember,\r
             string contractName,\r
             string requiredTypeIdentity,\r
@@ -198,16 +197,14 @@ namespace System.ComponentModel.Composition.ReflectionModel
             ImportCardinality cardinality,\r
             bool isRecomposable,\r
             CreationPolicy requiredCreationPolicy,\r
-            bool isPartCreator,\r
+            bool isExportFactory,\r
             ICompositionElement origin)\r
         {\r
             Requires.NotNullOrEmpty(contractName, "contractName");\r
-            Requires.NullOrNotNullElements(requiredMetadata, "requiredMetadata");\r
             Requires.IsInMembertypeSet(importingMember.MemberType, "importingMember", MemberTypes.Property | MemberTypes.Field);\r
 \r
-            if (isPartCreator)\r
+            if (isExportFactory)\r
             {\r
-#if SILVERLIGHT\r
                 return new PartCreatorMemberImportDefinition(\r
                     importingMember,\r
                     origin,\r
@@ -219,9 +216,6 @@ namespace System.ComponentModel.Composition.ReflectionModel
                         isRecomposable,\r
                         false,\r
                         CreationPolicy.NonShared));\r
-#else\r
-                throw new ArgumentException("PartCreator is only support in Silverlight version of MEF", "isPartCreator");\r
-#endif\r
             }\r
             else\r
             {\r
@@ -250,24 +244,22 @@ namespace System.ComponentModel.Composition.ReflectionModel
             return CreateImportDefinition(parameter, contractName, requiredTypeIdentity, requiredMetadata, cardinality, requiredCreationPolicy, false, origin);\r
         }\r
 \r
-        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
-        public static ContractBasedImportDefinition CreateImportDefinition(\r
+        [SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
+        internal static ContractBasedImportDefinition CreateImportDefinition(\r
             Lazy<ParameterInfo> parameter,\r
             string contractName,\r
             string requiredTypeIdentity,\r
             IEnumerable<KeyValuePair<string, Type>> requiredMetadata,\r
             ImportCardinality cardinality,\r
             CreationPolicy requiredCreationPolicy,\r
-            bool isPartCreator,\r
+            bool isExportFactory,\r
             ICompositionElement origin)\r
         {\r
             Requires.NotNull(parameter, "parameter");\r
             Requires.NotNullOrEmpty(contractName, "contractName");\r
-            Requires.NullOrNotNullElements(requiredMetadata, "requiredMetadata");\r
 \r
-            if (isPartCreator)\r
+            if (isExportFactory)\r
             {\r
-#if SILVERLIGHT\r
                 return new PartCreatorParameterImportDefinition(\r
                     parameter,\r
                     origin,\r
@@ -279,9 +271,6 @@ namespace System.ComponentModel.Composition.ReflectionModel
                         false,\r
                         true,\r
                         CreationPolicy.NonShared));\r
-#else\r
-                throw new ArgumentException("PartCreator is only support in Silverlight version of MEF", "isPartCreator");\r
-#endif\r
             }\r
             else\r
             {\r
@@ -295,8 +284,8 @@ namespace System.ComponentModel.Composition.ReflectionModel
                     origin);\r
             }\r
         }\r
-\r
-        private class ReflectionPartCreationInfo : IReflectionPartCreationInfo\r
+    }\r
+        internal class ReflectionPartCreationInfo : IReflectionPartCreationInfo\r
         {\r
             private readonly Lazy<Type> _partType;\r
             private readonly Lazy<IEnumerable<ImportDefinition>> _imports;\r
@@ -434,7 +423,7 @@ namespace System.ComponentModel.Composition.ReflectionModel
             }\r
         }\r
 \r
-        private class LazyExportDefinition : ExportDefinition\r
+        internal class LazyExportDefinition : ExportDefinition\r
         {\r
             private readonly Lazy<IDictionary<string, object>> _metadata;\r
 \r
@@ -452,6 +441,4 @@ namespace System.ComponentModel.Composition.ReflectionModel
                 }\r
             }\r
         }\r
-\r
-    }\r
 }\r
index f5dfbc562952f1daf4c8a6d62e3473960972703e..af62622fa9eaecc811408295f97a9ae006a63af6 100644 (file)
@@ -110,14 +110,14 @@ namespace System.ComponentModel.Composition.ReflectionModel
         {\r
             Assumes.NotNull(this._getMethod);\r
 \r
-            return this.UnderlyingGetMethod.Invoke(instance, (object[])null);\r
+            return this.UnderlyingGetMethod.SafeInvoke(instance);\r
         }\r
 \r
         public override void SetValue(object instance, object value)\r
         {\r
             Assumes.NotNull(this._setMethod);\r
 \r
-            this.UnderlyingSetMethod.Invoke(instance, new object[] { value });\r
+            this.UnderlyingSetMethod.SafeInvoke(instance, value);\r
         }\r
 \r
     }\r
index 90b52a5c85f0c00e4a2cc7deb676eea1c063946b..03a48286d3ca9e1ae71265c246811646a05e7a04 100644 (file)
@@ -1,7 +1,7 @@
 // -----------------------------------------------------------------------\r
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 // -----------------------------------------------------------------------\r
-#if !NET_4_0\r
+#if !CLR40\r
 using System;\r
 \r
 namespace System\r
index 67a0b4382ac70be226e02bc213f7099f2a2701a1..50e0aec66708c6ea55f23fa85468f1f554438ba8 100644 (file)
@@ -1,6 +1,7 @@
-//------------------------------------------------------------\r
+//------------------------------------------------------------\r
 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
 //------------------------------------------------------------\r
 [assembly: System.CLSCompliant(true)]\r
+[assembly: System.Reflection.AssemblyTitle("System.ComponentModel.Composition.Initialization")]\r
 [assembly: System.Reflection.AssemblyCopyright("(c) Microsoft Corporation. All rights reserved.")]\r
-[assembly: System.Reflection.AssemblyVersion("2009.22.10")]\r
+[assembly: System.Reflection.AssemblyVersion("2010.02.11")]\r
index 6a06e0e5dc714456415ecb818444d2160f705867..c9e17ab9b1797b75f454366829364846e94f3ff3 100644 (file)
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">\r
+    <CodeAnalysisRuleSet>Migrated rules for Composition.Initialization.ruleset</CodeAnalysisRuleSet>\r
+    <CodeAnalysisRules />\r
+  </PropertyGroup>\r
+    <PropertyGroup>\r
+    <OutputPath>..\..\bin</OutputPath>\r
+    <DefineConstants>$(DefineConstants);TRACE</DefineConstants>\r
+    <NoWarn>1570;1572;1573;1591;1699</NoWarn>\r
+  </PropertyGroup>\r
   <PropertyGroup>\r
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
-    <ProductVersion>9.0.30729</ProductVersion>\r
+    <ProjectClrTypes>FULLCLR;SILVERLIGHT</ProjectClrTypes>\r
+    <ProductVersion>10.0.20805</ProductVersion>\r
     <SchemaVersion>2.0</SchemaVersion>\r
-    <ProjectGuid>{9F7B8224-8306-41A1-B362-077C0C6DC7A1}</ProjectGuid>\r
-    <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>\r
     <OutputType>Library</OutputType>\r
-    <AppDesignerFolder>Properties</AppDesignerFolder>\r
-    <RootNamespace>System.ComponentModel.Composition.Initialization</RootNamespace>\r
     <AssemblyName>System.ComponentModel.Composition.Initialization</AssemblyName>\r
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
-    <SilverlightApplication>false</SilverlightApplication>\r
-    <ValidateXaml>true</ValidateXaml>\r
-    <ThrowErrorsInValidation>true</ThrowErrorsInValidation>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
-    <DebugSymbols>true</DebugSymbols>\r
-    <DebugType>full</DebugType>\r
-    <Optimize>false</Optimize>\r
-    <OutputPath>..\..\bin\SL\</OutputPath>\r
-    <DefineConstants>DEBUG;TRACE;SILVERLIGHT</DefineConstants>\r
-    <NoStdLib>true</NoStdLib>\r
-    <NoConfig>true</NoConfig>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
-    <DocumentationFile>..\..\bin\SL\System.ComponentModel.Composition.Initialization.xml</DocumentationFile>\r
+    <RootNamespace>System.ComponentModel.Composition.Initialization</RootNamespace>\r
+    <DocumentationFile>$(OutputPath)\System.ComponentModel.Composition.Initialization.xml</DocumentationFile>\r
+    <ProjectGuid>{A497DC28-0A3B-4BAD-B964-B8B436686D98}</ProjectGuid>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
-    <DebugType>pdbonly</DebugType>\r
-    <Optimize>true</Optimize>\r
-    <OutputPath>Bin\Release</OutputPath>\r
-    <DefineConstants>TRACE;SILVERLIGHT</DefineConstants>\r
+  <PropertyGroup>\r
+    <SignAssembly>true</SignAssembly>\r
     <NoStdLib>true</NoStdLib>\r
-    <NoConfig>true</NoConfig>\r
-    <ErrorReport>prompt</ErrorReport>\r
-    <WarningLevel>4</WarningLevel>\r
   </PropertyGroup>\r
   <ItemGroup>\r
     <Reference Include="mscorlib" />\r
-    <Reference Include="system" />\r
+    <Reference Include="System" />\r
     <Reference Include="System.Core" />\r
     <Reference Include="System.Net" />\r
+    <Reference Include="System.Xml" />\r
+    <ProjectReference Include="..\ComponentModel\ComponentModel.csproj">\r
+      <Project>{1BBA5101-D4F0-48B8-A5D6-7B23A099DCE3}</Project>\r
+      <Name>ComponentModel</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <ItemGroup Condition="'$(IsSilverLight)' == 'true'">\r
+    <Reference Include="System.Windows" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionHost.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionInitializer.AssemblyList.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionInitializer.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\DeploymentCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\Package.cs" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Compile Include="AssemblyInfo.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.Reader.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.Writer.cs" />\r
+    <Compile Include="Microsoft\Internal\Requires.cs" />\r
     <Compile Include="Strings.Designer.cs">\r
       <AutoGen>True</AutoGen>\r
       <DesignTime>True</DesignTime>\r
       <DependentUpon>Strings.resx</DependentUpon>\r
     </Compile>\r
-    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionHost.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartInitializer.AssemblyList.cs" />\r
-    <Compile Include="System\ComponentModel\Composition\PartInitializer.cs" />\r
+    <Compile Include="SuppressMessages.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportFactoryOfT.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportFactoryOfTTMetadata.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportLifetimeContextOfT.cs" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <EmbeddedResource Include="Strings.resx">\r
       <Generator>ResXFileCodeGenerator</Generator>\r
       <LastGenOutput>Strings.Designer.cs</LastGenOutput>\r
-      <CustomToolNamespace>System.ComponentModel.Composition</CustomToolNamespace>\r
+      <SubType>Designer</SubType>\r
     </EmbeddedResource>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ProjectReference Include="..\ComponentModel\ComponentModel - SL.csproj">\r
-      <Project>{A36AEF66-2411-4225-B68E-F2D29368A31B}</Project>\r
-      <Name>ComponentModel - SL</Name>\r
-    </ProjectReference>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <Folder Include="Properties\" />\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+      <ProductName>Windows Installer 3.1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
   </ItemGroup>\r
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" />\r
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
-       Other similar extension points exist, see Microsoft.Common.targets.\r
-  <Target Name="BeforeBuild">\r
-  </Target>\r
-  <Target Name="AfterBuild">\r
-  </Target>\r
-  -->\r
-  <ProjectExtensions>\r
-    <VisualStudio>\r
-      <FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">\r
-        <SilverlightProjectProperties />\r
-      </FlavorProperties>\r
-    </VisualStudio>\r
-  </ProjectExtensions>\r
-</Project>
\ No newline at end of file
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />\r
+</Project>\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Composition.InitializationSL.csproj b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Composition.InitializationSL.csproj
new file mode 100644 (file)
index 0000000..27a77b8
--- /dev/null
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">\r
+    <CodeAnalysisRuleSet>Migrated rules for Composition.Initialization.ruleset</CodeAnalysisRuleSet>\r
+    <CodeAnalysisRules />\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <IsSilverlight>true</IsSilverlight>\r
+    <DefineConstants>$(DefineConstants);SILVERLIGHT</DefineConstants>\r
+    <ProjectTypeGuids>{A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>\r
+    <OutputPath>..\..\bin\SL</OutputPath>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <NoWarn>1570;1572;1573;1591;1699</NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <ProjectClrTypes>FULLCLR;SILVERLIGHT</ProjectClrTypes>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <OutputType>Library</OutputType>\r
+    <AssemblyName>System.ComponentModel.Composition.Initialization</AssemblyName>\r
+    <RootNamespace>System.ComponentModel.Composition.Initialization</RootNamespace>\r
+    <DocumentationFile>$(OutputPath)\System.ComponentModel.Composition.Initialization.xml</DocumentationFile>\r
+    <ProjectGuid>{A497DC28-0A3B-4BAD-B964-B8B436686D98}</ProjectGuid>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
+  </PropertyGroup>\r
+  <PropertyGroup>\r
+    <SignAssembly>true</SignAssembly>\r
+    <NoStdLib>true</NoStdLib>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="mscorlib" />\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core" />\r
+    <Reference Include="System.Net" />\r
+    <Reference Include="System.Xml" />\r
+    <ProjectReference Include="..\ComponentModel\ComponentModelSL.csproj">\r
+      <Project>{1BBA5101-D4F0-48B8-A5D6-7B23A099DCE3}</Project>\r
+      <Name>ComponentModelSL</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <ItemGroup Condition="'$(IsSilverLight)' == 'true'">\r
+    <Reference Include="System.Windows" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\CompositionHost.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionInitializer.AssemblyList.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\CompositionInitializer.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\DeploymentCatalog.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\Hosting\Package.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="AssemblyInfo.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.Reader.cs" />\r
+    <Compile Include="Microsoft\Internal\Lock.Writer.cs" />\r
+    <Compile Include="Microsoft\Internal\Requires.cs" />\r
+    <Compile Include="Strings.Designer.cs">\r
+      <AutoGen>True</AutoGen>\r
+      <DesignTime>True</DesignTime>\r
+      <DependentUpon>Strings.resx</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="SuppressMessages.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportFactoryOfT.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportFactoryOfTTMetadata.cs" />\r
+    <Compile Include="System\ComponentModel\Composition\ExportLifetimeContextOfT.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <EmbeddedResource Include="Strings.resx">\r
+      <Generator>ResXFileCodeGenerator</Generator>\r
+      <LastGenOutput>Strings.Designer.cs</LastGenOutput>\r
+      <SubType>Designer</SubType>\r
+    </EmbeddedResource>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>\r
+      <Install>false</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+      <ProductName>.NET Framework 3.5 SP1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+      <ProductName>Windows Installer 3.1</ProductName>\r
+      <Install>true</Install>\r
+    </BootstrapperPackage>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.CSharp.targets" />\r
+  <ProjectExtensions>\r
+    <VisualStudio>\r
+      <FlavorProperties GUID="{A1591282-1198-4647-A2B1-27E5FF5F6F3B}">\r
+        <SilverlightProjectProperties />\r
+      </FlavorProperties>\r
+    </VisualStudio>\r
+  </ProjectExtensions>\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.Reader.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.Reader.cs
new file mode 100644 (file)
index 0000000..3f81a68
--- /dev/null
@@ -0,0 +1,32 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading;\r
+\r
+namespace Microsoft.Internal\r
+{\r
+    internal struct ReadLock : IDisposable\r
+    {\r
+        private readonly Lock _lock;\r
+        private int _isDisposed;\r
+\r
+        public ReadLock(Lock @lock)\r
+        {\r
+            this._isDisposed = 0;\r
+            this._lock = @lock;\r
+            this._lock.EnterReadLock();\r
+        }\r
+\r
+        public void Dispose()\r
+        {\r
+            if (Interlocked.CompareExchange(ref this._isDisposed, 1, 0) == 0)\r
+            {\r
+                this._lock.ExitReadLock();\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.Writer.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.Writer.cs
new file mode 100644 (file)
index 0000000..e9d7088
--- /dev/null
@@ -0,0 +1,32 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading;\r
+\r
+namespace Microsoft.Internal\r
+{\r
+    internal struct WriteLock : IDisposable\r
+    {\r
+        private readonly Lock _lock;\r
+        private int _isDisposed;\r
+\r
+        public WriteLock(Lock @lock)\r
+        {\r
+            this._isDisposed = 0;\r
+            this._lock = @lock;\r
+            this._lock.EnterWriteLock();\r
+        }\r
+\r
+        public void Dispose()\r
+        {\r
+            if (Interlocked.CompareExchange(ref this._isDisposed, 1, 0) == 0)\r
+            {\r
+                this._lock.ExitWriteLock();\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Lock.cs
new file mode 100644 (file)
index 0000000..7cd7ac2
--- /dev/null
@@ -0,0 +1,79 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+using System.Threading;\r
+\r
+namespace Microsoft.Internal\r
+{\r
+    internal sealed class Lock : IDisposable\r
+    {\r
+#if (!SILVERLIGHT)\r
+        private ReaderWriterLockSlim _thisLock = new ReaderWriterLockSlim(LockRecursionPolicy.NoRecursion);\r
+        private int _isDisposed = 0;\r
+        public void EnterReadLock()\r
+        {\r
+            this._thisLock.EnterReadLock();\r
+        }\r
+\r
+        public void EnterWriteLock()\r
+        {\r
+            this._thisLock.EnterWriteLock();\r
+        }\r
+\r
+        public void ExitReadLock()\r
+        {\r
+            this._thisLock.ExitReadLock();\r
+        }\r
+\r
+        public void ExitWriteLock()\r
+        {\r
+            this._thisLock.ExitWriteLock();\r
+        }\r
+\r
+        public void Dispose()\r
+        {\r
+            if (Interlocked.CompareExchange(ref this._isDisposed, 1, 0) == 0)\r
+            {\r
+                this._thisLock.Dispose();\r
+            }\r
+        }\r
+\r
+#else\r
+        // ReaderWriterLockSlim is not yet implemented on SilverLight\r
+        // Satisfies our requirements until it is implemented\r
+        object _thisLock = new object();\r
+\r
+        public Lock()\r
+        {\r
+        }\r
+\r
+        public void EnterReadLock()\r
+        {\r
+            Monitor.Enter(this._thisLock);\r
+        }\r
+\r
+        public void EnterWriteLock()\r
+        {\r
+            Monitor.Enter(this._thisLock);\r
+        }\r
+\r
+        public void ExitReadLock()\r
+        {\r
+            Monitor.Exit(this._thisLock);\r
+        }\r
+\r
+        public void ExitWriteLock()\r
+        {\r
+            Monitor.Exit(this._thisLock);\r
+        }\r
+\r
+        public void Dispose()\r
+        {\r
+        }\r
+#endif\r
+    }\r
+}\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Requires.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/Microsoft/Internal/Requires.cs
new file mode 100644 (file)
index 0000000..c7c2d31
--- /dev/null
@@ -0,0 +1,39 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Collections;\r
+using System.Collections.Generic;\r
+using System.Diagnostics;\r
+using System.Linq;\r
+using System.Globalization;\r
+using System.Reflection;\r
+using System.ComponentModel.Composition;\r
+using System.Text;\r
+\r
+namespace Microsoft.Internal\r
+{\r
+    internal static class Requires\r
+    {\r
+        [DebuggerStepThrough]\r
+        public static void NotNull<T>(T value, string parameterName) \r
+            where T : class\r
+        {\r
+            if (value == null)\r
+            {\r
+                throw new ArgumentNullException(parameterName);\r
+            }\r
+        }\r
+\r
+        [DebuggerStepThrough]\r
+        public static void NotNullOrEmpty(string value, string parameterName)\r
+        {\r
+            NotNull(value, parameterName);\r
+\r
+            if (value.Length == 0)\r
+            {\r
+                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.ArgumentException_EmptyString, parameterName), parameterName);\r
+            }\r
+        }\r
+    }\r
+}\r
index f882e14514e96106c8848fb3696c7986a11a2129..9fe4543a0b1e342f77e3e5094fa989ffe2ee0951 100644 (file)
@@ -1,7 +1,7 @@
 //------------------------------------------------------------------------------\r
 // <auto-generated>\r
 //     This code was generated by a tool.\r
-//     Runtime Version:2.0.50727.4927\r
+//     Runtime Version:4.0.21114.1\r
 //\r
 //     Changes to this file may cause incorrect behavior and will be lost if\r
 //     the code is regenerated.\r
@@ -19,7 +19,7 @@ namespace System.ComponentModel.Composition {
     // class via a tool like ResGen or Visual Studio.\r
     // To add or remove a member, edit your .ResX file then rerun ResGen\r
     // with the /str option, or rebuild your VS project.\r
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]\r
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]\r
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\r
     internal class Strings {\r
@@ -60,6 +60,15 @@ namespace System.ComponentModel.Composition {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to &apos;{0}&apos; cannot be an empty string (&quot;&quot;)..\r
+        /// </summary>\r
+        internal static string ArgumentException_EmptyString {\r
+            get {\r
+                return ResourceManager.GetString("ArgumentException_EmptyString", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to Cannot call SatisfyImports on a object of type &apos;{0}&apos; because it is marked with one or more ExportAttributes..\r
         /// </summary>\r
@@ -69,6 +78,24 @@ namespace System.ComponentModel.Composition {
             }\r
         }\r
         \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Catalog is trying to transition to an invalid state. Occurs when you call DownloadAsync more than once or CancelAsync is called at an incorrect time..\r
+        /// </summary>\r
+        internal static string InvalidOperationException_DeploymentCatalogInvalidStateChange {\r
+            get {\r
+                return ResourceManager.GetString("InvalidOperationException_DeploymentCatalogInvalidStateChange", resourceCulture);\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to The package downloaded successfully but an error occurred while reading the contents of the package. See the inner exception for more details..\r
+        /// </summary>\r
+        internal static string InvalidOperationException_ErrorReadingXap {\r
+            get {\r
+                return ResourceManager.GetString("InvalidOperationException_ErrorReadingXap", resourceCulture);\r
+            }\r
+        }\r
+        \r
         /// <summary>\r
         ///   Looks up a localized string similar to The container has already been initialized either by another call to InitializeContainer or by someone causing the default container to be constructed. Ensure that InitializeContainer is one of the first things that happens in the application host to ensure that it is ready for the first composition..\r
         /// </summary>\r
index 56a85ee40fd172fa479ae7a40f79708dfbb1ae1e..b451d64391f61fc8c35d1e5ef73e7b81943b4f2a 100644 (file)
   <data name="InvalidOperationException_GlobalContainerAlreadyInitialized" xml:space="preserve">\r
     <value>The container has already been initialized either by another call to InitializeContainer or by someone causing the default container to be constructed. Ensure that InitializeContainer is one of the first things that happens in the application host to ensure that it is ready for the first composition.</value>\r
   </data>\r
+  <data name="ArgumentException_EmptyString" xml:space="preserve">\r
+    <value>'{0}' cannot be an empty string ("").</value>\r
+  </data>\r
+  <data name="InvalidOperationException_DeploymentCatalogInvalidStateChange" xml:space="preserve">\r
+    <value>Catalog is trying to transition to an invalid state. Occurs when you call DownloadAsync more than once or CancelAsync is called at an incorrect time.</value>\r
+  </data>\r
+  <data name="InvalidOperationException_ErrorReadingXap" xml:space="preserve">\r
+    <value>The package downloaded successfully but an error occurred while reading the contents of the package. See the inner exception for more details.</value>\r
+  </data>\r
 </root>
\ No newline at end of file
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/SuppressMessages.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/SuppressMessages.cs
new file mode 100644 (file)
index 0000000..76dc008
--- /dev/null
@@ -0,0 +1,8 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Diagnostics.CodeAnalysis;\r
+\r
+[module: SuppressMessage("Microsoft.MSInternal", "CA905:SystemNamespacesRequireApproval", Scope = "namespace", Target = "System.ComponentModel.Composition.Hosting")]\r
+[module: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "System.ComponentModel.Composition.Hosting")]
\ No newline at end of file
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/CompositionInitializer.AssemblyList.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/CompositionInitializer.AssemblyList.cs
new file mode 100644 (file)
index 0000000..6e83472
--- /dev/null
@@ -0,0 +1,36 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Reflection;\r
+using System.Windows;\r
+using System.Windows.Resources;\r
+\r
+namespace System.ComponentModel.Composition\r
+{\r
+    public static partial class CompositionInitializer\r
+    {\r
+        // This method is the only Silverlight specific code dependency in CompositionHost\r
+        private static List<Assembly> GetAssemblyList()\r
+        {\r
+            var assemblies = new List<Assembly>();\r
+\r
+            // While this may seem like somewhat of a hack, walking the AssemblyParts in the active \r
+            // deployment object is the only way to get the list of assemblies loaded by the XAP. \r
+            foreach (AssemblyPart ap in Deployment.Current.Parts)\r
+            {\r
+                StreamResourceInfo sri = Application.GetResourceStream(new Uri(ap.Source, UriKind.Relative));\r
+                if (sri != null)\r
+                {\r
+                    // Keep in mind that calling Load on an assembly that is already loaded will\r
+                    // be a no-op and simply return the already loaded assembly object.\r
+                    Assembly assembly = ap.Load(sri.Stream);\r
+                    assemblies.Add(assembly);\r
+                }\r
+            }\r
+\r
+            return assemblies;\r
+        }\r
+    }\r
+}
\ No newline at end of file
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/CompositionInitializer.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/CompositionInitializer.cs
new file mode 100644 (file)
index 0000000..1416b6e
--- /dev/null
@@ -0,0 +1,104 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.ComponentModel.Composition.Hosting;\r
+using System.ComponentModel.Composition.Primitives;\r
+using System.Globalization;\r
+using System.Linq;\r
+using System.Reflection;\r
+\r
+namespace System.ComponentModel.Composition\r
+{\r
+    public static partial class CompositionInitializer\r
+    {\r
+        /// <summary>\r
+        ///     Will satisfy the imports on a object instance based on a <see cref="CompositionContainer"/>\r
+        ///     registered with the <see cref="CompositionHost"/>. By default if no <see cref="CompositionContainer"/>\r
+        ///     is registered the first time this is called it will be initialized to a catalog\r
+        ///     that contains all the assemblies loaded by the initial application XAP.\r
+        /// </summary>\r
+        /// <param name="attributedPart">\r
+        ///     Object instance that contains <see cref="ImportAttribute"/>s that need to be satisfied.\r
+        /// </param>\r
+        /// <exception cref="ArgumentNullException">\r
+        ///     <paramref name="instance"/> is <see langword="null"/>.\r
+        /// </exception>\r
+        /// <exception cref="ArgumentException">\r
+        ///     <paramref name="instance"/> contains <see cref="ExportAttribute"/>s applied on its type.\r
+        /// </exception>\r
+        /// <exception cref="ChangeRejectedException">\r
+        ///     One or more of the imports on the object instance could not be satisfied.\r
+        /// </exception>\r
+        /// <exception cref="CompositionException">\r
+        ///     One or more of the imports on the object instance caused an error while composing.\r
+        /// </exception>\r
+        public static void SatisfyImports(object attributedPart)\r
+        {\r
+            if (attributedPart == null)\r
+            {\r
+                throw new ArgumentNullException("attributedPart");\r
+            }\r
+            ComposablePart part = AttributedModelServices.CreatePart(attributedPart);\r
+            CompositionInitializer.SatisfyImports(part);\r
+        }\r
+\r
+\r
+        /// <summary>\r
+        ///     Will satisfy the imports on a part based on a <see cref="CompositionContainer"/>\r
+        ///     registered with the <see cref="CompositionHost"/>. By default if no <see cref="CompositionContainer"/>\r
+        ///     is registered the first time this is called it will be initialized to a catalog\r
+        ///     that contains all the assemblies loaded by the initial application XAP.\r
+        /// </summary>\r
+        /// <param name="part">\r
+        ///     Part with imports that need to be satisfied.\r
+        /// </param>\r
+        /// <exception cref="ArgumentNullException">\r
+        ///     <paramref name="instance"/> is <see langword="null"/>.\r
+        /// </exception>\r
+        /// <exception cref="ArgumentException">\r
+        ///     <paramref name="instance"/> contains <see cref="ExportAttribute"/>s applied on its type.\r
+        /// </exception>\r
+        /// <exception cref="ChangeRejectedException">\r
+        ///     One or more of the imports on the object instance could not be satisfied.\r
+        /// </exception>\r
+        /// <exception cref="CompositionException">\r
+        ///     One or more of the imports on the object instance caused an error while composing.\r
+        /// </exception>\r
+        public static void SatisfyImports(ComposablePart part)\r
+        {\r
+            if (part == null)\r
+            {\r
+                throw new ArgumentNullException("part");\r
+            }\r
+\r
+            var batch = new CompositionBatch();\r
+\r
+            batch.AddPart(part);\r
+\r
+            if (part.ExportDefinitions.Any())\r
+            {\r
+                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture,\r
+                        Strings.ArgumentException_TypeHasExports, part.ToString()), "part");\r
+            }\r
+\r
+            CompositionContainer container = null;\r
+\r
+            // Ignoring return value because we don't need to know if we created it or not\r
+            CompositionHost.TryGetOrCreateContainer(_createContainer, out container);\r
+\r
+            container.Compose(batch);\r
+        }\r
+\r
+        private static Func<CompositionContainer> _createContainer = CreateCompositionContainer;\r
+        private static CompositionContainer CreateCompositionContainer()\r
+        {\r
+            var assemblyCatalogs = GetAssemblyList()\r
+                .Select<Assembly, ComposablePartCatalog>(assembly => new AssemblyCatalog(assembly));\r
+\r
+            var aggCatalog = new AggregateCatalog(assemblyCatalogs);\r
+\r
+            return new CompositionContainer(aggCatalog);\r
+        }\r
+    }\r
+}
\ No newline at end of file
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportFactoryOfT.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportFactoryOfT.cs
new file mode 100644 (file)
index 0000000..1ee6628
--- /dev/null
@@ -0,0 +1,30 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using Microsoft.Internal;\r
+using System.ComponentModel.Composition.Primitives;\r
+\r
+namespace System.ComponentModel.Composition\r
+{\r
+    public class ExportFactory<T>\r
+    {\r
+        private Func<Tuple<T, Action>> _exportLifetimeContextCreator;\r
+\r
+        public ExportFactory(Func<Tuple<T, Action>> exportLifetimeContextCreator)\r
+        {\r
+            if (exportLifetimeContextCreator == null)\r
+            {\r
+                throw new ArgumentNullException("exportLifetimeContextCreator");\r
+            }\r
+\r
+            this._exportLifetimeContextCreator = exportLifetimeContextCreator;\r
+        }\r
+\r
+        public ExportLifetimeContext<T> CreateExport()\r
+        {\r
+            Tuple<T, Action> untypedLifetimeContext = this._exportLifetimeContextCreator.Invoke();\r
+            return new ExportLifetimeContext<T>(untypedLifetimeContext.Item1, untypedLifetimeContext.Item2);\r
+        }\r
+    }\r
+}\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportFactoryOfTTMetadata.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportFactoryOfTTMetadata.cs
new file mode 100644 (file)
index 0000000..feb4097
--- /dev/null
@@ -0,0 +1,25 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.ComponentModel.Composition.Primitives;\r
+\r
+namespace System.ComponentModel.Composition\r
+{\r
+    public class ExportFactory<T, TMetadata> : ExportFactory<T>\r
+    {\r
+        private readonly TMetadata _metadata;\r
+\r
+        public ExportFactory(Func<Tuple<T, Action>> exportLifetimeContextCreator, TMetadata metadata)\r
+            : base(exportLifetimeContextCreator)\r
+        {\r
+            this._metadata = metadata;\r
+        }\r
+\r
+        public TMetadata Metadata\r
+        {\r
+            get { return this._metadata; }\r
+        }\r
+    }\r
+}\r
+\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportLifetimeContextOfT.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/ExportLifetimeContextOfT.cs
new file mode 100644 (file)
index 0000000..f1182da
--- /dev/null
@@ -0,0 +1,38 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.ComponentModel.Composition.Primitives;\r
+using System.Linq;\r
+\r
+namespace System.ComponentModel.Composition\r
+{\r
+    public sealed class ExportLifetimeContext<T> : IDisposable\r
+    {\r
+        private readonly T _value;\r
+        private readonly Action _disposeAction;\r
+\r
+        public ExportLifetimeContext(T value, Action disposeAction)\r
+        {\r
+            this._value = value;\r
+            this._disposeAction = disposeAction;\r
+        }\r
+\r
+        public T Value\r
+        {\r
+            get\r
+            {\r
+                return this._value;\r
+            }\r
+        }\r
+\r
+        public void Dispose()\r
+        {\r
+            if (this._disposeAction != null)\r
+            {\r
+                this._disposeAction.Invoke();\r
+            }\r
+        }\r
+    }\r
+}\r
+\r
index bd29a071a3d8f3ee0112fc271b765d0d736c7fe6..33d65fd64994d3d202c0e3254ee3b4ffdbcd81a9 100644 (file)
@@ -4,7 +4,7 @@
 using System;\r
 using System.Globalization;\r
 using System.Threading;\r
-\r
+using System.ComponentModel.Composition.Primitives;\r
 namespace System.ComponentModel.Composition.Hosting\r
 {\r
     public static class CompositionHost\r
@@ -14,11 +14,11 @@ namespace System.ComponentModel.Composition.Hosting
         private static object _lockObject = new object();\r
 \r
         /// <summary>\r
-        ///     This method can be used to initialize the global container used by <see cref="PartInitializer.SatisfyImports"/>\r
+        ///     This method can be used to initialize the global container used by <see cref="CompositionInitializer.SatisfyImports(object)"/>\r
         ///     in case where the default container doesn't provide enough flexibility. \r
         ///     \r
         ///     If this method is needed it should be called exactly once and as early as possible in the application host. It will need\r
-        ///     to be called before the first call to <see cref="PartInitializer.SatisfyImports"/>\r
+        ///     to be called before the first call to <see cref="CompositionInitializer.SatisfyImports(object)"/>\r
         /// </summary>\r
         /// <param name="container">\r
         ///     <see cref="CompositionContainer"/> that should be used instead of the default global container.\r
@@ -27,11 +27,11 @@ namespace System.ComponentModel.Composition.Hosting
         ///     <paramref name="container"/> is <see langword="null"/>.\r
         /// </exception>\r
         /// <exception cref="InvalidOperationException">\r
-        ///     Either <see cref="InitializeContainer" /> has already been called or someone has already made use of the global \r
-        ///     container via <see cref="PartInitializer.SatisfyImports"/>. In either case you need to ensure that it \r
+        ///     Either <see cref="Initialize(CompositionContainer)" /> or <see cref="Initialize(ComposablePartCatalog[])" /> has already been called or someone has already made use of the global \r
+        ///     container via <see cref="CompositionInitializer.SatisfyImports(object)"/>. In either case you need to ensure that it \r
         ///     is called only once and that it is called early in the application host startup code.\r
         /// </exception>\r
-        public static void InitializeContainer(CompositionContainer container)\r
+        public static void Initialize(CompositionContainer container)\r
         {\r
             if (container == null)\r
             {\r
@@ -48,6 +48,48 @@ namespace System.ComponentModel.Composition.Hosting
             }\r
         }\r
 \r
+        /// <summary>\r
+        ///     This method can be used to initialize the global container used by <see cref="CompositionInitializer.SatisfyImports(object)"/>\r
+        ///     in case where the default container doesn't provide enough flexibility. \r
+        ///     \r
+        ///     If this method is needed it should be called exactly once and as early as possible in the application host. It will need\r
+        ///     to be called before the first call to <see cref="CompositionInitializer.SatisfyImports(object)"/>\r
+        /// </summary>\r
+        /// <param name="catalogs">\r
+        ///     An array of <see cref="ComposablePartCatalog"/> that should be used to initialize the <see cref="CompositionContainer"/> with.\r
+        /// </param>\r
+        /// <exception cref="ArgumentNullException">\r
+        ///     <paramref name="catalogs"/> is <see langword="null"/>.\r
+        /// </exception>\r
+        /// <exception cref="InvalidOperationException">\r
+        ///     Either <see cref="Initialize(CompositionContainer)" /> or <see cref="Initialize(ComposablePartCatalog[])" />has already been called or someone has already made use of the global \r
+        ///     container via <see cref="CompositionInitializer.SatisfyImports(object)"/>. In either case you need to ensure that it \r
+        ///     is called only once and that it is called early in the application host startup code.\r
+        /// </exception>\r
+        public static CompositionContainer Initialize(params ComposablePartCatalog[] catalogs)\r
+        {\r
+            AggregateCatalog aggregateCatalog = new AggregateCatalog(catalogs);\r
+            CompositionContainer container = new CompositionContainer(aggregateCatalog);\r
+            try\r
+            {\r
+                CompositionHost.Initialize(container);\r
+            }\r
+            catch\r
+            {\r
+                container.Dispose();\r
+\r
+                // NOTE : this is important, as this prevents the disposal of the catalogs passed as input arguments\r
+                aggregateCatalog.Catalogs.Clear();\r
+                aggregateCatalog.Dispose();\r
+\r
+                throw;\r
+            }\r
+\r
+            return container;\r
+        }\r
+\r
+\r
+\r
         internal static bool TryGetOrCreateContainer(Func<CompositionContainer> createContainer, out CompositionContainer globalContainer)\r
         {\r
             bool alreadyCreated = true;\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/Hosting/DeploymentCatalog.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/Hosting/DeploymentCatalog.cs
new file mode 100644 (file)
index 0000000..e6042b1
--- /dev/null
@@ -0,0 +1,420 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+using System;\r
+using System.Collections.Generic;\r
+using System.ComponentModel.Composition.Primitives;\r
+using System.Linq;\r
+using System.Net;\r
+using System.Reflection;\r
+using System.Threading;\r
+using Microsoft.Internal;\r
+\r
+#if (SILVERLIGHT)\r
+namespace System.ComponentModel.Composition.Hosting\r
+{\r
+    /// <summary>\r
+    /// Implements a MEF catalog that supports Asynchronous download of Silverlast Xap files.\r
+    /// </summary>\r
+    public class DeploymentCatalog : ComposablePartCatalog, INotifyComposablePartCatalogChanged\r
+    {\r
+        static class State\r
+        {\r
+            public const int Created = 0;\r
+            public const int Initialized = 1000;\r
+            public const int DownloadStarted = 2000;\r
+            public const int DownloadCompleted = 3000;\r
+            public const int DownloadCancelled = 4000;\r
+        }\r
+\r
+        private Lock _lock = new Lock();\r
+        private volatile bool _isDisposed = false;\r
+        private Uri _uri = null;\r
+        private int _state = State.Created;\r
+        private AggregateCatalog _catalogCollection = new AggregateCatalog();\r
+        private WebClient _webClient = null;\r
+\r
+        /// <summary>\r
+        /// Construct a Deployment catalog with the parts from the main Xap.\r
+        /// </summary>\r
+        public DeploymentCatalog()\r
+        {\r
+            this.DiscoverParts(Package.CurrentAssemblies);\r
+            this._state = State.Initialized;\r
+        }\r
+\r
+        /// <summary>\r
+        /// Construct a Deployment catalog with a string form relative uri.\r
+        /// </summary>\r
+        /// <value>\r
+        ///     A relative Uri to the Download Xap file\r
+        ///     <see cref="DeploymentCatalog"/>.\r
+        /// </value>\r
+        /// <exception cref="ArgumentException">\r
+        ///     The argument is null or an empty string.\r
+        /// </exception>\r
+        public DeploymentCatalog(string uriRelative)\r
+        {\r
+            Requires.NotNullOrEmpty(uriRelative, "uriRelative");\r
+            this._uri = new Uri(uriRelative, UriKind.Relative);\r
+        }\r
+\r
+        /// <summary>\r
+        /// Construct a Deployment catalog with the parts from uri.\r
+        /// </summary>\r
+        /// <value>\r
+        ///     A Uri to the Download Xap file\r
+        ///     <see cref="System.Uri"/>.\r
+        /// </value>\r
+        /// <exception cref="ArgumentException">\r
+        ///     The argument is null.\r
+        /// </exception>\r
+        public DeploymentCatalog(Uri uri)\r
+        {\r
+            Requires.NotNull<Uri>(uri, "uri");\r
+            this._uri = uri;\r
+        }\r
+\r
+        /// <summary>\r
+        /// Notify when the contents of the Catalog has changed.\r
+        /// </summary>\r
+        public event EventHandler<ComposablePartCatalogChangeEventArgs> Changed;\r
+\r
+        /// <summary>\r
+        /// Notify when the contents of the Catalog is changing.\r
+        /// </summary>\r
+        public event EventHandler<ComposablePartCatalogChangeEventArgs> Changing;\r
+\r
+        /// <summary>\r
+        /// Notify when the download has been completed.\r
+        /// </summary>\r
+        public event EventHandler<AsyncCompletedEventArgs> DownloadCompleted;\r
+\r
+        /// <summary>\r
+        /// Notify when the contents of the Progress of the download has changed.\r
+        /// </summary>\r
+        public event EventHandler<DownloadProgressChangedEventArgs> DownloadProgressChanged;\r
+       \r
+        /// <summary>\r
+        /// Retrieve or create the WebClient.\r
+        /// </summary>\r
+        /// <exception cref="ObjectDisposedException">\r
+        ///     The <see cref="DeploymentCatalog"/> has been disposed of.\r
+        /// </exception>\r
+        private WebClient WebClient\r
+        {\r
+            get\r
+            {\r
+                this.ThrowIfDisposed();\r
+                if(this._webClient == null)\r
+                {\r
+                    Interlocked.CompareExchange<WebClient>(ref this._webClient, new WebClient(), null);\r
+                }\r
+                return this._webClient;\r
+            }\r
+        }\r
+        \r
+        /// <summary>\r
+        ///     Gets the part definitions of the Deployment catalog.\r
+        /// </summary>\r
+        /// <value>\r
+        ///     A <see cref="IQueryable{T}"/> of <see cref="ComposablePartDefinition"/> objects of the \r
+        ///     <see cref="DeploymentCatalog"/>.\r
+        /// </value>\r
+        /// <exception cref="ObjectDisposedException">\r
+        ///     The <see cref="DeploymentCatalog"/> has been disposed of.\r
+        /// </exception>\r
+        public override IQueryable<ComposablePartDefinition> Parts\r
+        {\r
+            get\r
+            {\r
+                this.ThrowIfDisposed();\r
+                return this._catalogCollection.Parts;\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///     Gets the Uri of this catalog\r
+        /// </summary>\r
+        /// <exception cref="ObjectDisposedException">\r
+        ///     The <see cref="DeploymentCatalog"/> has been disposed of.\r
+        /// </exception>\r
+        public Uri Uri\r
+        {\r
+            get\r
+            {\r
+                this.ThrowIfDisposed();\r
+                return this._uri;\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        /// </summary>\r
+        /// <param name="assemblies">\r
+        /// </param>\r
+        /// <exception cref="ObjectDisposedException">\r
+        ///     The <see cref="DeploymentCatalog"/> has been disposed of.\r
+        /// </exception>\r
+        private void DiscoverParts(IEnumerable<Assembly> assemblies)\r
+        {\r
+            this.ThrowIfDisposed();\r
+\r
+            var addedDefinitions = new List<ComposablePartDefinition>();\r
+            var addedCatalogs = new Dictionary<string, ComposablePartCatalog>();\r
+            using(new ReadLock(this._lock))\r
+            {\r
+                foreach (var assembly in assemblies)\r
+                {\r
+                    if (addedCatalogs.ContainsKey(assembly.FullName)) \r
+                    {\r
+                        // Nothing to do because the assembly has already been added.\r
+                        continue;\r
+                    }\r
+\r
+                    var catalog = new AssemblyCatalog(assembly);\r
+                    addedDefinitions.AddRange(catalog.Parts);\r
+                    addedCatalogs.Add(assembly.FullName, catalog);\r
+                }\r
+            }\r
+\r
+            // Generate notifications\r
+            using (var atomicComposition = new AtomicComposition())\r
+            {\r
+                var changingArgs = new ComposablePartCatalogChangeEventArgs(addedDefinitions, Enumerable.Empty<ComposablePartDefinition>(), atomicComposition);\r
+                this.OnChanging(changingArgs);\r
+\r
+                using (new WriteLock(this._lock))\r
+                {\r
+                    foreach (var item in addedCatalogs)\r
+                    {\r
+                        this._catalogCollection.Catalogs.Add(item.Value);\r
+                    }\r
+                }\r
+                atomicComposition.Complete();\r
+            }\r
+\r
+            var changedArgs = new ComposablePartCatalogChangeEventArgs(addedDefinitions, Enumerable.Empty<ComposablePartDefinition>(), null);\r
+            this.OnChanged(changedArgs);\r
+        }\r
+\r
+        /// <summary>\r
+        ///     Returns the export definitions that match the constraint defined by the specified definition.\r
+        /// </summary>\r
+        /// <param name="definition">\r
+        ///     The <see cref="ImportDefinition"/> that defines the conditions of the \r
+        ///     <see cref="ExportDefinition"/> objects to return.\r
+        /// </param>\r
+        /// <returns>\r
+        ///     An <see cref="IEnumerable{T}"/> of <see cref="Tuple{T1, T2}"/> containing the \r
+        ///     <see cref="ExportDefinition"/> objects and their associated \r
+        ///     <see cref="ComposablePartDefinition"/> for objects that match the constraint defined \r
+        ///     by <paramref name="definition"/>.\r
+        /// </returns>\r
+        /// <exception cref="ArgumentNullException">\r
+        ///     <paramref name="definition"/> is <see langword="null"/>.\r
+        /// </exception>\r
+        /// <exception cref="ObjectDisposedException">\r
+        ///     The <see cref="DeploymentCatalog"/> has been disposed of.\r
+        /// </exception>\r
+        public override IEnumerable<Tuple<ComposablePartDefinition, ExportDefinition>> GetExports(ImportDefinition definition)\r
+        {\r
+            this.ThrowIfDisposed();\r
+            Requires.NotNull(definition, "definition");\r
+\r
+            return this._catalogCollection.GetExports(definition);\r
+        }\r
+\r
+        /// <summary>\r
+        /// Cancel the async operation.\r
+        /// </summary>\r
+        public void CancelAsync()\r
+        {\r
+            ThrowIfDisposed();\r
+            MutateStateOrThrow(State.DownloadCancelled, State.DownloadStarted);\r
+            this.WebClient.CancelAsync();\r
+        }\r
+\r
+        /// <summary>\r
+        /// Begin the asynchronous download.\r
+        /// </summary>\r
+        public void DownloadAsync()\r
+        {\r
+            ThrowIfDisposed();\r
+\r
+            if (Interlocked.CompareExchange(ref this._state, State.DownloadStarted, State.Created) == State.Created)\r
+            {\r
+                // Created with Downloadable content do download\r
+                this.WebClient.OpenReadCompleted += new OpenReadCompletedEventHandler(HandleOpenReadCompleted);\r
+                this.WebClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(HandleDownloadProgressChanged);\r
+                this.WebClient.OpenReadAsync(Uri, this);\r
+            }\r
+            else\r
+            {\r
+                // Created with LocalAssemblies \r
+                MutateStateOrThrow(State.DownloadCompleted, State.Initialized);\r
+\r
+                this.OnDownloadCompleted(new AsyncCompletedEventArgs(null, false, this));\r
+            }\r
+        }\r
+\r
+        void HandleDownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)\r
+        {\r
+            EventHandler<DownloadProgressChangedEventArgs> downloadProgressChangedEvent = this.DownloadProgressChanged;\r
+            if (downloadProgressChangedEvent != null)\r
+            {\r
+                downloadProgressChangedEvent(this, e);\r
+            }\r
+        }\r
+\r
+        private void HandleOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)\r
+        {\r
+            Exception error = e.Error;\r
+            bool cancelled = e.Cancelled;\r
+\r
+            // Possible valid current states are DownloadStarted and DownloadCancelled.\r
+            int currentState = Interlocked.CompareExchange(ref this._state, State.DownloadCompleted, State.DownloadStarted);\r
+\r
+            if (currentState != State.DownloadStarted)\r
+            {\r
+                cancelled = true;\r
+            }\r
+\r
+            if (error == null && !cancelled)\r
+            {\r
+                try\r
+                {\r
+                    var assemblies = Package.LoadPackagedAssemblies(e.Result);\r
+                    this.DiscoverParts(assemblies);\r
+                }\r
+                catch (Exception ex)\r
+                {\r
+                    error = new InvalidOperationException(Strings.InvalidOperationException_ErrorReadingXap, ex);\r
+                }\r
+            }\r
+\r
+            this.OnDownloadCompleted(new AsyncCompletedEventArgs(error, cancelled, this));\r
+        }\r
+\r
+        /// <summary>\r
+        ///     Raises the <see cref="INotifyComposablePartCatalogChanged.Changed"/> event.\r
+        /// </summary>\r
+        /// <param name="e">\r
+        ///     An <see cref="ComposablePartCatalogChangeEventArgs"/> containing the data for the event.\r
+        /// </param>\r
+        protected virtual void OnChanged(ComposablePartCatalogChangeEventArgs e)\r
+        {\r
+            EventHandler<ComposablePartCatalogChangeEventArgs> changedEvent = this.Changed;\r
+            if (changedEvent != null)\r
+            {\r
+                changedEvent(this, e);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///     Raises the <see cref="INotifyComposablePartCatalogChanged.Changing"/> event.\r
+        /// </summary>\r
+        /// <param name="e">\r
+        ///     An <see cref="ComposablePartCatalogChangeEventArgs"/> containing the data for the event.\r
+        /// </param>\r
+        protected virtual void OnChanging(ComposablePartCatalogChangeEventArgs e)\r
+        {\r
+            EventHandler<ComposablePartCatalogChangeEventArgs> changingEvent = this.Changing;\r
+            if (changingEvent != null)\r
+            {\r
+                changingEvent(this, e);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///     Raises the <see cref="DownloadCompleted"/> event.\r
+        /// </summary>\r
+        /// <param name="e">\r
+        ///     An <see cref="AsyncCompletedEventArgs"/> containing the data for the event.\r
+        /// </param>\r
+        protected virtual void OnDownloadCompleted(AsyncCompletedEventArgs e)\r
+        {\r
+            EventHandler<AsyncCompletedEventArgs> downloadCompletedEvent = this.DownloadCompleted;\r
+            if (downloadCompletedEvent != null)\r
+            {\r
+                downloadCompletedEvent(this, e);\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        ///     Raises the <see cref="DownloadProgressChanged"/> event.\r
+        /// </summary>\r
+        /// <param name="e">\r
+        ///     An <see cref="ProgressChangedEventArgs"/> containing the data for the event.\r
+        /// </param>\r
+        protected virtual void OnDownloadProgressChanged(DownloadProgressChangedEventArgs e)\r
+        {\r
+            EventHandler<DownloadProgressChangedEventArgs> downloadProgressChangedEvent = this.DownloadProgressChanged;\r
+            if (downloadProgressChangedEvent != null)\r
+            {\r
+                downloadProgressChangedEvent(this, e);\r
+            }\r
+        }\r
+\r
+        protected override void Dispose(bool disposing)\r
+        {\r
+            try\r
+            {\r
+                if (disposing)\r
+                {\r
+                    if (!this._isDisposed)\r
+                    {\r
+                        AggregateCatalog catalogs = null;\r
+                        bool disposeLock = false;\r
+                        try\r
+                        {\r
+                            using (new WriteLock(this._lock))\r
+                            {\r
+                                if (!this._isDisposed)\r
+                                {\r
+                                    disposeLock = true;\r
+                                    catalogs = this._catalogCollection;\r
+                                    this._catalogCollection = null;\r
+                                    this._isDisposed = true;\r
+                                }\r
+                            }\r
+                        }\r
+                        finally\r
+                        {\r
+                            if (catalogs != null)\r
+                            {\r
+                                catalogs.Dispose();\r
+                            }\r
+\r
+                            if (disposeLock)\r
+                            {\r
+                                this._lock.Dispose();\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            finally\r
+            {\r
+                base.Dispose(disposing);\r
+            }\r
+        }\r
+\r
+        private void ThrowIfDisposed()\r
+        {\r
+            if (this._isDisposed)\r
+            {\r
+                throw new ObjectDisposedException(this.GetType().ToString()); \r
+            }\r
+        }\r
+\r
+        private void MutateStateOrThrow(int toState, int fromState)\r
+        {\r
+            int currentState = Interlocked.CompareExchange(ref this._state, toState, fromState);\r
+            if(currentState != fromState)\r
+            {\r
+                throw new InvalidOperationException(Strings.InvalidOperationException_DeploymentCatalogInvalidStateChange);\r
+            }\r
+        }\r
+    }\r
+}\r
+#endif\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/Hosting/Package.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/Hosting/Package.cs
new file mode 100644 (file)
index 0000000..a91e594
--- /dev/null
@@ -0,0 +1,113 @@
+// -----------------------------------------------------------------------\r
+// Copyright (c) Microsoft Corporation.  All rights reserved.\r
+// -----------------------------------------------------------------------\r
+#if(SILVERLIGHT)\r
+using System;\r
+using System.Collections.Generic;\r
+using System.IO;\r
+using System.Net;\r
+using System.Reflection;\r
+using System.Windows;\r
+using System.Windows.Resources;\r
+using System.Xml;\r
+using System.ComponentModel;\r
+\r
+namespace System.ComponentModel.Composition.Hosting\r
+{\r
+    /// <summary>\r
+    ///     Helper functions for accessing the Silverlight manifest\r
+    /// </summary>\r
+    internal static class Package\r
+    {\r
+        /// <summary>\r
+        ///     Retrieves The current list of assemblies for the application XAP load. Depends on the Deployment.Current property being setup and\r
+        ///     so can only be accessed after the Application object has be completely constructed.\r
+        ///     No caching occurs at this level.\r
+        /// </summary>\r
+        public static IEnumerable<Assembly> CurrentAssemblies\r
+        {\r
+            get\r
+            {\r
+                var assemblies = new List<Assembly>();\r
+\r
+                // While this may seem like somewhat of a hack, walking the AssemblyParts in the active \r
+                // deployment object is the only way to get the list of assemblies loaded by the initial XAP. \r
+                foreach (AssemblyPart ap in Deployment.Current.Parts)\r
+                {\r
+                    StreamResourceInfo sri = Application.GetResourceStream(new Uri(ap.Source, UriKind.Relative));\r
+                    if (sri != null)\r
+                    {\r
+                        // Keep in mind that calling Load on an assembly that is already loaded will\r
+                        // be a no-op and simply return the already loaded assembly object.\r
+                        Assembly assembly = ap.Load(sri.Stream);\r
+                        assemblies.Add(assembly);\r
+                    }\r
+                }\r
+\r
+                return assemblies;\r
+            }\r
+        }\r
+\r
+\r
+        public static IEnumerable<Assembly> LoadPackagedAssemblies(Stream packageStream)\r
+        {\r
+            List<Assembly> assemblies = new List<Assembly>();\r
+            StreamResourceInfo packageStreamInfo = new StreamResourceInfo(packageStream, null);\r
+\r
+            IEnumerable<AssemblyPart> parts = GetDeploymentParts(packageStreamInfo);\r
+\r
+            foreach (AssemblyPart ap in parts)\r
+            {\r
+                StreamResourceInfo sri = Application.GetResourceStream(\r
+                    packageStreamInfo, new Uri(ap.Source, UriKind.Relative));\r
+\r
+                assemblies.Add(ap.Load(sri.Stream));\r
+            }\r
+            packageStream.Close();\r
+            return assemblies;\r
+        }\r
+\r
+        /// <summary>\r
+        ///     Only reads AssemblyParts and does not support external parts (aka Platform Extensions or TPEs).\r
+        /// </summary>\r
+        private static IEnumerable<AssemblyPart> GetDeploymentParts(StreamResourceInfo xapStreamInfo)\r
+        {\r
+            Uri manifestUri = new Uri("AppManifest.xaml", UriKind.Relative);\r
+            StreamResourceInfo manifestStreamInfo = Application.GetResourceStream(xapStreamInfo, manifestUri);\r
+            List<AssemblyPart> assemblyParts = new List<AssemblyPart>();\r
+\r
+            // The code assumes the following format in AppManifest.xaml\r
+            //<Deployment ... >\r
+            //  <Deployment.Parts>\r
+            //    <AssemblyPart x:Name="A" Source="A.dll" />\r
+            //    <AssemblyPart x:Name="B" Source="B.dll" />\r
+            //      ...\r
+            //    <AssemblyPart x:Name="Z" Source="Z.dll" />\r
+            //  </Deployment.Parts>\r
+            //</Deployment>\r
+            if (manifestStreamInfo != null)\r
+            {\r
+                Stream manifestStream = manifestStreamInfo.Stream;\r
+                using (XmlReader reader = XmlReader.Create(manifestStream))\r
+                {\r
+                    if (reader.ReadToFollowing("AssemblyPart"))\r
+                    {\r
+                        do\r
+                        {\r
+                            string source = reader.GetAttribute("Source");\r
+\r
+                            if (source != null)\r
+                            {\r
+                                assemblyParts.Add(new AssemblyPart() { Source = source });\r
+                            }\r
+                        }\r
+                        while (reader.ReadToNextSibling("AssemblyPart"));\r
+                    }\r
+                }\r
+            }\r
+\r
+            return assemblyParts;\r
+        }\r
+    }\r
+}\r
+#endif\r
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/PartInitializer.AssemblyList.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/PartInitializer.AssemblyList.cs
deleted file mode 100644 (file)
index b970bbf..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// -----------------------------------------------------------------------\r
-// Copyright (c) Microsoft Corporation.  All rights reserved.\r
-// -----------------------------------------------------------------------\r
-using System;\r
-using System.Collections.Generic;\r
-using System.Reflection;\r
-//using System.Windows;\r
-//using System.Windows.Resources;\r
-\r
-namespace System.ComponentModel.Composition\r
-{\r
-    public static partial class PartInitializer\r
-    {\r
-        // This method is the only Silverlight specific code dependency in CompositionHost\r
-        private static List<Assembly> GetAssemblyList()\r
-        {\r
-            var assemblies = new List<Assembly>();\r
-\r
-            // While this may seem like somewhat of a hack, walking the AssemblyParts in the active \r
-            // deployment object is the only way to get the list of assemblies loaded by the XAP. \r
-            /*\r
-            foreach (AssemblyPart ap in Deployment.Current.Parts)\r
-            {\r
-                StreamResourceInfo sri = Application.GetResourceStream(new Uri(ap.Source, UriKind.Relative));\r
-                if (sri != null)\r
-                {\r
-                    // Keep in mind that calling Load on an assembly that is already loaded will\r
-                    // be a no-op and simply return the already loaded assembly object.\r
-                    Assembly assembly = ap.Load(sri.Stream);\r
-                    assemblies.Add(assembly);\r
-                }\r
-            }\r
-             */\r
-\r
-            return assemblies;\r
-        }\r
-    }\r
-}
\ No newline at end of file
diff --git a/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/PartInitializer.cs b/mcs/class/System.ComponentModel.Composition/src/Composition.Initialization/System/ComponentModel/Composition/PartInitializer.cs
deleted file mode 100644 (file)
index 0fbf5af..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// -----------------------------------------------------------------------\r
-// Copyright (c) Microsoft Corporation.  All rights reserved.\r
-// -----------------------------------------------------------------------\r
-using System;\r
-using System.ComponentModel.Composition.Hosting;\r
-using System.ComponentModel.Composition.Primitives;\r
-using System.Globalization;\r
-using System.Linq;\r
-using System.Reflection;\r
-\r
-namespace System.ComponentModel.Composition\r
-{\r
-    public static partial class PartInitializer\r
-    {\r
-        /// <summary>\r
-        ///     Will satisfy the imports on a object instance based on a <see cref="CompositionContainer"/>\r
-        ///     registered with the <see cref="CompositionHost"/>. By default if no <see cref="CompositionContainer"/>\r
-        ///     is registered the first time this is called it will be initialized to a catalog\r
-        ///     that contains all the assemblies loaded by the initial application XAP.\r
-        /// </summary>\r
-        /// <param name="instance">\r
-        ///     Object instance that contains <see cref="ImportAttribute"/>s that need to be satisfied.\r
-        /// </param>\r
-        /// <exception cref="ArgumentNullException">\r
-        ///     <paramref name="instance"/> is <see langword="null"/>.\r
-        /// </exception>\r
-        /// <exception cref="ArgumentException">\r
-        ///     <paramref name="instance"/> contains <see cref="ExportAttribute"/>s applied on its type.\r
-        /// </exception>\r
-        /// <exception cref="ChangeRejectedException">\r
-        ///     One or more of the imports on the object instance could not be satisfied.\r
-        /// </exception>\r
-        /// <exception cref="CompositionException">\r
-        ///     One or more of the imports on the object instance caused an error while composing.\r
-        /// </exception>\r
-        public static void SatisfyImports(object instance)\r
-        {\r
-            if (instance == null)\r
-            {\r
-                throw new ArgumentNullException("instance");\r
-            }\r
-\r
-            var batch = new CompositionBatch();\r
-\r
-            var attributedPart = batch.AddPart(instance);\r
-\r
-            if (attributedPart.ExportDefinitions.Any())\r
-            {\r
-                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture,\r
-                        Strings.ArgumentException_TypeHasExports, instance.GetType().FullName), "instance");\r
-            }\r
-\r
-            CompositionContainer container = null;\r
-\r
-            // Ignoring return value because we don't need to know if we created it or not\r
-            CompositionHost.TryGetOrCreateContainer(_createContainer, out container);\r
-\r
-            container.Compose(batch);\r
-        }\r
-\r
-        private static Func<CompositionContainer> _createContainer = CreateCompositionContainer;\r
-        private static CompositionContainer CreateCompositionContainer()\r
-        {\r
-            var assemblyCatalogs = GetAssemblyList()\r
-                .Select<Assembly, ComposablePartCatalog>(assembly => new AssemblyCatalog(assembly));\r
-\r
-            var aggCatalog = new AggregateCatalog(assemblyCatalogs);\r
-\r
-            return new CompositionContainer(aggCatalog);\r
-        }\r
-    }\r
-}
\ No newline at end of file