-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
+../../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
--- /dev/null
+//------------------------------------------------------------\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
-<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
}\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
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
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void ComposeExportedValueOfT_ValidContractName_ExportedValue_ExportContainsEmptyMetadata()\r
{\r
string expectedContractName = "ContractName";\r
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
\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
}\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
}\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
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
\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
\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
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
}\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
var exception = CreateCompositionException(e.Input);\r
\r
AssertMessage(exception, e.Output, CultureInfo.CurrentCulture);\r
- } \r
+ }\r
}\r
\r
[TestMethod]\r
}\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
}\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
return new CompositionException(message, innerException, errors);\r
}\r
}\r
-}
\ No newline at end of file
+}\r
Assert.IsTrue(predicate(exportDefinition));\r
}\r
\r
-#if SILVERLIGHT\r
-\r
[TestMethod]\r
public void PartCreatorConstraint_ShouldMatchPartCreatorExportDefinition()\r
{\r
Assert.IsTrue(partCreatorImportDef.IsConstraintSatisfiedBy(exportDefinition));\r
Assert.IsTrue(predicate(exportDefinition));\r
}\r
-#endif\r
\r
[TestMethod]\r
public void TryParseConstraint_ConstraintFromCreateConstraintAsConstraintArgument1_CanParse()\r
}\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
[TestClass]\r
public class ComposableTraceSourceTests\r
{\r
+#if !SILVERLIGHT\r
[TestMethod]\r
public void CanWriteInformation_ShouldReturnFalseByDefault()\r
{\r
Assert.IsTrue(CompositionTraceSource.CanWriteError);\r
}\r
\r
-#if !SILVERLIGHT\r
-\r
[TestMethod]\r
public void CanWriteInformation_WhenSwitchLevelLessThanInformation_ShouldReturnFalse()\r
{\r
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
}\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
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
// -----------------------------------------------------------------------\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
// 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
\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
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void Constructor1_ShouldSetPartsPropertyToEmpty()\r
{\r
var catalog = new AggregateCatalog();\r
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void Constructor3_NullAsCatalogsArgument_ShouldSetPartsPropertyToEmpty()\r
{\r
var catalog = new AggregateCatalog((IEnumerable<ComposablePartCatalog>)null);\r
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void Constructor3_EmptyIEnumerableAsCatalogsArgument_ShouldSetPartsPropertyToEmpty()\r
{\r
var catalog = new AggregateCatalog(Enumerable.Empty<ComposablePartCatalog>());\r
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void AggregatingCatalogAddAndRemoveChildren()\r
{\r
int changedCount = 0;\r
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void AggregatingCatalogAddAndRemoveNestedChildren()\r
{\r
int changedCount = 0;\r
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void AggregatingDisposedAndNotifications()\r
{\r
int changedCount = 0;\r
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void CatalogEvents_AggregateAddRemove()\r
{\r
var catalog = new AggregateCatalog();\r
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void CatalogEvents_DeepAggregateAddRemove()\r
{\r
var deepCatalog = new AggregateCatalog();\r
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
Assert.AreEqual(0, exports.Count());\r
}\r
\r
- [Ignore]\r
- [WorkItem(744984)]\r
[TestMethod]\r
public void TestOptionalMetadataValueTypeMismatch()\r
{\r
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
\r
}\r
\r
+\r
+\r
+\r
+\r
// Tests for metadata issues on export\r
\r
[Export]\r
[TestClass]\r
public class MetadataViewProviderTests\r
{\r
+\r
[TestMethod]\r
public void GetMetadataView_InterfaceWithPropertySetter_ShouldThrowNotSupported()\r
{\r
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
\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
}\r
\r
[TestMethod]\r
+ [Ignore]\r
+ [WorkItem(812029)]\r
public void Parts_ShouldNotCacheUnderlyingParts()\r
{\r
var catalog = CatalogFactory.CreateAggregateCatalog();\r
});\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
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
true, //isPartCreator\r
null);\r
\r
- Assert.IsTrue(ReflectionModelServices.IsPartCreatorImportDefinition(import));\r
+ Assert.IsTrue(ReflectionModelServices.IsExportFactoryImportDefinition(import));\r
}\r
\r
[TestMethod]\r
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
--- /dev/null
+// -----------------------------------------------------------------------\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
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
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
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
-//------------------------------------------------------------\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
--- /dev/null
+#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
--- /dev/null
+// -----------------------------------------------------------------------\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
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
<?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
-//------------------------------------------------------------\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
-<?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
--- /dev/null
+<?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
}\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
}\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
--- /dev/null
+#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
{\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
--- /dev/null
+#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
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
}\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
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
CreationPolicy.NonShared));\r
}\r
else\r
-#endif\r
{\r
return new ReflectionParameterImportDefinition(\r
new Lazy<ParameterInfo>(() => parameter),\r
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
CreationPolicy.NonShared));\r
}\r
else\r
-#endif\r
{\r
return new ReflectionMemberImportDefinition(\r
new LazyMemberInfo(member),\r
\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
{\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
\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
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
{\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
/// </value>\r
public override string Message\r
{\r
- [System.Security.SecuritySafeCritical]\r
get\r
{\r
return string.Format(CultureInfo.CurrentCulture, \r
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
[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
_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
/// <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
return new CompositionError(id, string.Format(CultureInfo.CurrentCulture, format, parameters), element, exception);\r
}\r
}\r
-}
\ No newline at end of file
+}\r
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
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
: 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
}\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
// -----------------------------------------------------------------------\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
// 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
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
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
}\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
{\r
return new DisposableLazy<T>(\r
() => ExportServices.GetCastedExportedValue<T>(export),\r
- export as IDisposable);\r
+ disposable);\r
}\r
else\r
{\r
}\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
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
}\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
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
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
/// <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
/// <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
}\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
}\r
}\r
}\r
- finally\r
- {\r
- base.Dispose(disposing);\r
- }\r
+ }\r
+ finally\r
+ {\r
+ base.Dispose(disposing);\r
}\r
}\r
\r
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
/// </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
\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
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
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
}\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
{\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
// -----------------------------------------------------------------------\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
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
// -----------------------------------------------------------------------\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
}\r
}\r
}\r
-#endif\r
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
/// 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
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
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
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
// 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
definition = partCreatorDefinition.ProductImportDefinition;\r
isPartCreator = true;\r
}\r
-#endif\r
+\r
CreationPolicy importPolicy = definition.GetRequiredCreationPolicy();\r
\r
List<Export> exports = new List<Export>();\r
{\r
if (!IsRejected(partDefinitionAndExportDefinition.Item1, atomicComposition))\r
{\r
-#if SILVERLIGHT\r
if (isPartCreator)\r
{\r
exports.Add(new PartCreatorExport(this,\r
partDefinitionAndExportDefinition.Item2));\r
}\r
else\r
-#endif\r
{\r
exports.Add(CatalogExport.CreateExport(this, \r
partDefinitionAndExportDefinition.Item1, \r
// 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
}\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
/// 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
\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
/// <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
/// <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
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
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
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
if (allowsMultiple)\r
{\r
var list = new MetadataList();\r
- list.Add(value);\r
+ list.Add(value, valueType);\r
value = list;\r
}\r
\r
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
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
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
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
/// <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
/// <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
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
/// <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
/// <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
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
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
// Copyright (c) Microsoft Corporation. All rights reserved.\r
// -----------------------------------------------------------------------\r
using System;\r
+using System.Diagnostics.CodeAnalysis;\r
\r
namespace System.ComponentModel.Composition\r
{\r
/// 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
// -----------------------------------------------------------------------\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
}\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
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
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
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
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
// 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
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
/// <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
// 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
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
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
/// <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
/// 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
/// <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
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
// -----------------------------------------------------------------------\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
// 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
/// <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
/// 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
/// <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
using System.Globalization;\r
using System.Reflection;\r
using Microsoft.Internal;\r
+using System.Threading;\r
\r
namespace System.ComponentModel.Composition.ReflectionModel\r
{\r
{\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
{\r
this.EnsureReadable();\r
\r
- if (this._cachedValue == null)\r
+ if (!this._isValueCached)\r
{\r
object exportedValue;\r
try\r
\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
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
{\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
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
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
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
{\r
try\r
{\r
- collectionObject = constructor.Invoke(new object[] { });\r
+ collectionObject = constructor.SafeInvoke();\r
}\r
catch (TargetInvocationException exception)\r
{\r
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
}\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
// 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
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
}\r
}\r
}\r
-\r
-#endif
\ No newline at end of file
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
}\r
}\r
}\r
-\r
-#endif
\ No newline at end of file
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
}\r
}\r
}\r
-\r
-#endif
\ No newline at end of file
\r
try\r
{\r
- instance = constructor.Invoke(arguments);\r
+ instance = constructor.SafeInvoke(arguments);\r
}\r
catch (TypeInitializationException ex) \r
{ \r
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
}\r
}\r
\r
+ [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]\r
public override ComposablePart CreatePart()\r
{\r
if (this.IsDisposalRequired)\r
\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
\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
// 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
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
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
\r
return partCreatorImportDefinition.ProductImportDefinition;\r
}\r
-#endif\r
\r
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]\r
public static ComposablePartDefinition CreatePartDefinition(\r
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
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
}\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
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
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
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
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
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
}\r
}\r
\r
- private class LazyExportDefinition : ExportDefinition\r
+ internal class LazyExportDefinition : ExportDefinition\r
{\r
private readonly Lazy<IDictionary<string, object>> _metadata;\r
\r
}\r
}\r
}\r
-\r
- }\r
}\r
{\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
// -----------------------------------------------------------------------\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
-//------------------------------------------------------------\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
-<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
--- /dev/null
+<?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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
//------------------------------------------------------------------------------\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
// 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
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized string similar to '{0}' cannot be an empty string ("")..\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 '{0}' because it is marked with one or more ExportAttributes..\r
/// </summary>\r
}\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
<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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
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
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
/// <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
}\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
--- /dev/null
+// -----------------------------------------------------------------------\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
--- /dev/null
+// -----------------------------------------------------------------------\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
+++ /dev/null
-// -----------------------------------------------------------------------\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
+++ /dev/null
-// -----------------------------------------------------------------------\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